diff --git a/dist/1142-1142.js b/dist/1142-1142.js new file mode 100644 index 00000000000..5d487dabddc --- /dev/null +++ b/dist/1142-1142.js @@ -0,0 +1,2 @@ +(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[1142],{5016(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-expiry-time[data-v-c9199db0]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-c9199db0]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-c9199db0]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-c9199db0]{padding:var(--border-radius-element);max-width:300px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue"],names:[],mappings:"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA",sourcesContent:["\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\n}\n"],sourceRoot:""}]);const o=r},10322(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-469e5e80]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-469e5e80]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-469e5e80]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-469e5e80],.sharing-entry__summary__desc small[data-v-469e5e80]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-469e5e80]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntry.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]);const o=r},12231(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-4ca4172c]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-4ca4172c]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-4ca4172c]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-4ca4172c]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-4ca4172c]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-4ca4172c]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-4ca4172c]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-4ca4172c] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-4ca4172c]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-4ca4172c]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-4ca4172c],.sharing-entry .action-item~.sharing-entry__loading[data-v-4ca4172c]{margin-inline-start:0}.sharing-entry__copy-icon--success[data-v-4ca4172c]{color:var(--color-border-success)}.qr-code-dialog[data-v-4ca4172c]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-4ca4172c]{width:100%;height:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryLink.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,oDACC,iCAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t&__copy-icon--success {\n\t\tcolor: var(--color-border-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r},15667(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".emptyContentWithSections[data-v-7cacff60]{margin:1rem auto}.sharingTab[data-v-7cacff60]{position:relative;height:100%}.sharingTab__content[data-v-7cacff60]{padding:0 6px}.sharingTab__content section[data-v-7cacff60]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-7cacff60]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-7cacff60]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-7cacff60]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-7cacff60]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-7cacff60]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-7cacff60]{margin:var(--default-clickable-area) 0}.hint-body[data-v-7cacff60]{max-width:300px;padding:var(--border-radius-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingTab.vue"],names:[],mappings:"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,sCAAA,CAIF,4BACC,eAAA,CACA,oCAAA",sourcesContent:["\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: var(--default-clickable-area) 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=r},18999(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-13d4a0bb]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-13d4a0bb]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-13d4a0bb]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-13d4a0bb]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-13d4a0bb]{margin-inline-start:auto !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},24708(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-select[data-v-11ecc4a6]{display:block}.share-select[data-v-11ecc4a6] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-11ecc4a6] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-11ecc4a6] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-11ecc4a6] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"],names:[],mappings:"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA",sourcesContent:["\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},27920(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry__inherited .avatar-shared[data-v-cedf3238]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingInherited.vue"],names:[],mappings:"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA",sourcesContent:["\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n}\n"],sourceRoot:""}]);const o=r},41142(e,i,s){"use strict";s.d(i,{default:()=>Di});var a=s(85471),n=s(21777),r=s(19051),o=s(87485),l=s(35810),h=s(81222),c=s(51651),d=s(63814),u=s(40715),p=s(41944),g=s(74095),f=s(90116),A=s(54562),m=s(41423),_=s(85168),y=s(57505),w=s(54373);const C={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var v=s(14486);const b=(0,v.A)(C,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon content-copy-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports;var x=s(24764);const S={name:"SharingEntrySimple",components:{NcActions:x.A},props:{title:{type:String,required:!0},subtitle:{type:String,default:""},isUnique:{type:Boolean,default:!0},ariaExpanded:{type:Boolean,default:null}},computed:{ariaExpandedValue(){return null===this.ariaExpanded?this.ariaExpanded:this.ariaExpanded?"true":"false"}}};var k=s(85072),E=s.n(k),D=s(97825),I=s.n(D),P=s(77659),T=s.n(P),N=s(55056),L=s.n(N),R=s(10540),B=s.n(R),V=s(41113),O=s.n(V),F=s(18999),q={};q.styleTagTransform=O(),q.setAttributes=L(),q.insert=T().bind(null,"head"),q.domAPI=I(),q.insertStyleElement=B(),E()(F.A,q),F.A&&F.A.locals&&F.A.locals;const M=(0,v.A)(S,function(){var e=this,t=e._self._c;return t("li",{staticClass:"sharing-entry"},[e._t("avatar"),e._v(" "),t("div",{staticClass:"sharing-entry__desc"},[t("span",{staticClass:"sharing-entry__title"},[e._v(e._s(e.title))]),e._v(" "),e.subtitle?t("p",[e._v("\n\t\t\t"+e._s(e.subtitle)+"\n\t\t")]):e._e()]),e._v(" "),e.$slots.default?t("NcActions",{ref:"actionsComponent",staticClass:"sharing-entry__actions",attrs:{"menu-align":"right","aria-expanded":e.ariaExpandedValue}},[e._t("default")],2):e._e()],2)},[],!1,null,"13d4a0bb",null).exports;var H=s(48564);function $(e){const t=(0,d.$_)(),{globalscale:i}=(0,o.F)();return i?.token?(0,d.Jv)("/gf/{token}/{fileid}",{token:i.token,fileid:e},{baseURL:t}):(0,d.Jv)("/f/{fileid}",{fileid:e},{baseURL:t})}const U={name:"SharingEntryInternal",components:{NcActionButton:y.A,SharingEntrySimple:M,CheckIcon:w.A,ClipboardIcon:b},props:{fileInfo:{type:Object,required:!0}},data:()=>({copied:!1,copySuccess:!1}),computed:{internalLink(){return $(this.fileInfo.id)},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing","Copy internal link")},internalLinkSubtitle:()=>t("files_sharing","For people who already have access")},methods:{async copyLink(){try{await navigator.clipboard.writeText(this.internalLink),(0,_.Te)(t("files_sharing","Link copied")),this.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(e){this.copySuccess=!1,this.copied=!0,H.A.error(e)}finally{setTimeout(()=>{this.copySuccess=!1,this.copied=!1},4e3)}}}};var W=s(84388),z={};z.styleTagTransform=O(),z.setAttributes=L(),z.insert=T().bind(null,"head"),z.domAPI=I(),z.insertStyleElement=B(),E()(W.A,z),W.A&&W.A.locals&&W.A.locals;const j=(0,v.A)(U,function(){var e=this,t=e._self._c;return t("ul",[t("SharingEntrySimple",{ref:"shareEntrySimple",staticClass:"sharing-entry__internal",attrs:{title:e.t("files_sharing","Internal link"),subtitle:e.internalLinkSubtitle},scopedSlots:e._u([{key:"avatar",fn:function(){return[t("div",{staticClass:"avatar-external icon-external-white"})]},proxy:!0}])},[e._v(" "),t("NcActionButton",{attrs:{title:e.copyLinkTooltip,"aria-label":e.copyLinkTooltip},on:{click:e.copyLink},scopedSlots:e._u([{key:"icon",fn:function(){return[e.copied&&e.copySuccess?t("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):t("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}])})],1)],1)},[],!1,null,"6c4cb23b",null).exports;var G=s(46855),Q=s(67607);const Y=1,Z=2,J=4,K=8,X=16,ee={READ_ONLY:Y,UPLOAD_AND_UPDATE:12|(Y|Z),FILE_DROP:4,ALL:4|Z|Y|8,ALL_FILE:Z|Y};var te=s(32505),ie=s(44719),se=s(36520);const ae=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],ne={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"};function re(){return(0,te.f)()?`/files/${(0,te.G)()}`:`/files/${(0,n.HW)()?.uid}`}const oe=re(),le=function(){const e=(0,d.dC)("dav");return(0,te.f)()?e.replace("remote.php","public.php"):e}();class he{constructor(e){if(function(e,t,i){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(this,"_share",void 0),e.ocs&&e.ocs.data&&e.ocs.data[0]&&(e=e.ocs.data[0]),"string"==typeof e.id&&(e.id=Number.parseInt(e.id)),e.hide_download=!!e.hide_download,e.mail_send=!!e.mail_send,e.attributes&&"string"==typeof e.attributes)try{e.attributes=JSON.parse(e.attributes)}catch{H.A.warn("Could not parse share attributes returned by server",e.attributes)}e.attributes=e.attributes??[],this._share=e}get state(){return this._share}get id(){return this._share.id}get type(){return this._share.share_type}get permissions(){return this._share.permissions}get attributes(){return this._share.attributes||[]}set permissions(e){this._share.permissions=e}get owner(){return this._share.uid_owner}get ownerDisplayName(){return this._share.displayname_owner}get shareWith(){return this._share.share_with}get shareWithDisplayName(){return this._share.share_with_displayname||this._share.share_with}get shareWithDisplayNameUnique(){return this._share.share_with_displayname_unique||this._share.share_with}get shareWithLink(){return this._share.share_with_link}get shareWithAvatar(){return this._share.share_with_avatar}get uidFileOwner(){return this._share.uid_file_owner}get displaynameFileOwner(){return this._share.displayname_file_owner||this._share.uid_file_owner}get createdTime(){return this._share.stime}get expireDate(){return this._share.expiration}set expireDate(e){this._share.expiration=e}get token(){return this._share.token}set token(e){this._share.token=e}get note(){return this._share.note}set note(e){this._share.note=e}get label(){return this._share.label??""}set label(e){this._share.label=e}get mailSend(){return!0===this._share.mail_send}get hideDownload(){return!0===this._share.hide_download||void 0!==this.attributes.find?.(({scope:e,key:t,value:i})=>"permissions"===e&&"download"===t&&!i)}set hideDownload(e){if(!e){const e=this.attributes.find(({key:e,scope:t})=>"download"===e&&"permissions"===t);e&&(e.value=!0)}this._share.hide_download=!0===e}get password(){return this._share.password}set password(e){this._share.password=e}get passwordExpirationTime(){return this._share.password_expiration_time}set passwordExpirationTime(e){this._share.password_expiration_time=e}get sendPasswordByTalk(){return this._share.send_password_by_talk}set sendPasswordByTalk(e){this._share.send_password_by_talk=e}get path(){return this._share.path}get itemType(){return this._share.item_type}get mimetype(){return this._share.mimetype}get fileSource(){return this._share.file_source}get fileTarget(){return this._share.file_target}get fileParent(){return this._share.file_parent}get hasReadPermission(){return!!(this.permissions&window.OC.PERMISSION_READ)}get hasCreatePermission(){return!!(this.permissions&window.OC.PERMISSION_CREATE)}get hasDeletePermission(){return!!(this.permissions&window.OC.PERMISSION_DELETE)}get hasUpdatePermission(){return!!(this.permissions&window.OC.PERMISSION_UPDATE)}get hasSharePermission(){return!!(this.permissions&window.OC.PERMISSION_SHARE)}get hasDownloadPermission(){return this.attributes.some(e=>"permissions"===e.scope&&"download"===e.key&&!1===e.value)}get isFileRequest(){return function(e="[]"){const t=e=>"fileRequest"===e.scope&&"enabled"===e.key&&!0===e.value;try{return JSON.parse(e).some(t)}catch(e){return H.A.error("Error while parsing share attributes",{error:e}),!1}}(JSON.stringify(this.attributes))}set hasDownloadPermission(e){this.setAttribute("permissions","download",!!e)}setAttribute(e,t,i){const s={scope:e,key:t,value:i};for(const e in this._share.attributes){const t=this._share.attributes[e];if(t.scope===s.scope&&t.key===s.key)return void this._share.attributes.splice(e,1,s)}this._share.attributes.push(s)}get canEdit(){return!0===this._share.can_edit}get canDelete(){return!0===this._share.can_delete}get viaFileid(){return this._share.via_fileid}get viaPath(){return this._share.via_path}get parent(){return this._share.parent}get storageId(){return this._share.storage_id}get storage(){return this._share.storage}get itemSource(){return this._share.item_source}get status(){return this._share.status}get isTrustedServer(){return!!this._share.is_trusted_server}}class ce{constructor(){(function(e,t,i){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})(this,"_capabilities",void 0),this._capabilities=(0,o.F)()}get defaultPermissions(){return this._capabilities.files_sharing?.default_permissions}get isPublicUploadEnabled(){return!0===this._capabilities.files_sharing?.public?.upload}get federatedShareDocLink(){return window.OC.appConfig.core.federatedCloudShareDoc}get defaultExpirationDate(){return this.isDefaultExpireDateEnabled&&null!==this.defaultExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultExpireDate)):null}get defaultInternalExpirationDate(){return this.isDefaultInternalExpireDateEnabled&&null!==this.defaultInternalExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultInternalExpireDate)):null}get defaultRemoteExpirationDateString(){return this.isDefaultRemoteExpireDateEnabled&&null!==this.defaultRemoteExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultRemoteExpireDate)):null}get enforcePasswordForPublicLink(){return!0===window.OC.appConfig.core.enforcePasswordForPublicLink}get enableLinkPasswordByDefault(){return!0===window.OC.appConfig.core.enableLinkPasswordByDefault}get isDefaultExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultExpireDateEnforced}get isDefaultExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultExpireDateEnabled}get isDefaultInternalExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnforced}get isDefaultInternalExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnabled}get isDefaultRemoteExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnforced}get isDefaultRemoteExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnabled}get isRemoteShareAllowed(){return!0===window.OC.appConfig.core.remoteShareAllowed}get isFederationEnabled(){return!0===this._capabilities?.files_sharing?.federation?.outgoing}get isPublicShareAllowed(){return!0===this._capabilities?.files_sharing?.public?.enabled}get isMailShareAllowed(){return!0===this._capabilities?.files_sharing?.sharebymail?.enabled&&!0===this.isPublicShareAllowed}get defaultExpireDate(){return window.OC.appConfig.core.defaultExpireDate}get defaultInternalExpireDate(){return window.OC.appConfig.core.defaultInternalExpireDate}get defaultRemoteExpireDate(){return window.OC.appConfig.core.defaultRemoteExpireDate}get isResharingAllowed(){return!0===window.OC.appConfig.core.resharingAllowed}get isPasswordForMailSharesRequired(){return!0===this._capabilities.files_sharing?.sharebymail?.password?.enforced}get shouldAlwaysShowUnique(){return!0===this._capabilities.files_sharing?.sharee?.always_show_unique}get allowGroupSharing(){return!0===window.OC.appConfig.core.allowGroupSharing}get maxAutocompleteResults(){return parseInt(window.OC.config["sharing.maxAutocompleteResults"],10)||25}get minSearchStringLength(){return parseInt(window.OC.config["sharing.minSearchStringLength"],10)||0}get passwordPolicy(){return this._capabilities?.password_policy||{}}get allowCustomTokens(){return this._capabilities?.files_sharing?.public?.custom_tokens}get showFederatedSharesAsInternal(){return(0,h.C)("files_sharing","showFederatedSharesAsInternal",!1)}get showFederatedSharesToTrustedServersAsInternal(){return(0,h.C)("files_sharing","showFederatedSharesToTrustedServersAsInternal",!1)}get showExternalSharing(){return(0,h.C)("files_sharing","showExternalSharing",!0)}}const de={methods:{async openSharingDetails(e){let t={};if(e.handler){const i={};this.suggestions&&(i.suggestions=this.suggestions,i.fileInfo=this.fileInfo,i.query=this.query);const s=await e.handler(i);t=this.mapShareRequestToShareObject(s)}else t=this.mapShareRequestToShareObject(e);if("dir"!==this.fileInfo.type){const e=t.permissions,i=-5&e&-9;e!==i&&(H.A.debug("Removed create/delete permissions from file share (only valid for folders)"),t.permissions=i)}const i={fileInfo:this.fileInfo,share:t};this.$emit("open-sharing-details",i)},openShareDetailsForCustomSettings(e){e.setCustomPermissions=!0,this.openSharingDetails(e)},mapShareRequestToShareObject(e){if(e.id)return e;const t={attributes:[{value:!0,key:"download",scope:"permissions"}],hideDownload:!1,share_type:e.shareType,share_with:e.shareWith,is_no_user:e.isNoUser,user:e.shareWith,share_with_displayname:e.displayName,subtitle:e.subtitle,permissions:e.permissions??(new ce).defaultPermissions,expiration:""};return new he(t)}}};var ue=s(61338);s(48318);const pe=(0,d.KT)("apps/files_sharing/api/v1/shares"),ge={methods:{async createShare({path:e,permissions:i,shareType:s,shareWith:a,publicUpload:n,password:o,sendPasswordByTalk:l,expireDate:h,label:c,note:d,attributes:u}){try{const t=await r.Ay.post(pe,{path:e,permissions:i,shareType:s,shareWith:a,publicUpload:n,password:o,sendPasswordByTalk:l,expireDate:h,label:c,note:d,attributes:u});if(!t?.data?.ocs)throw t;const p=new he(t.data.ocs.data);return(0,ue.Ic)("files_sharing:share:created",{share:p}),p}catch(e){H.A.error("Error while creating share",{error:e});const i=e?.response?.data?.ocs?.meta?.message;throw(0,_.Qg)(i?t("files_sharing","Error creating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error creating the share"),{type:"error"}),e}},async deleteShare(e){try{const t=await r.Ay.delete(pe+`/${e}`);if(!t?.data?.ocs)throw t;return(0,ue.Ic)("files_sharing:share:deleted",{id:e}),!0}catch(e){H.A.error("Error while deleting share",{error:e});const i=e?.response?.data?.ocs?.meta?.message;throw OC.Notification.showTemporary(i?t("files_sharing","Error deleting the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error deleting the share"),{type:"error"}),e}},async updateShare(e,i){try{const t=await r.Ay.put(pe+`/${e}`,i);if((0,ue.Ic)("files_sharing:share:updated",{id:e}),t?.data?.ocs)return t.data.ocs.data;throw t}catch(e){if(H.A.error("Error while updating share",{error:e}),400!==e.response.status){const i=e?.response?.data?.ocs?.meta?.message;OC.Notification.showTemporary(i?t("files_sharing","Error updating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error updating the share"),{type:"error"})}const i=e.response.data.ocs.meta.message;throw new Error(i)}}}},fe={name:"SharingInput",components:{NcSelect:Q.default},mixins:[ge,de],props:{shares:{type:Array,required:!0},linkShares:{type:Array,required:!0},fileInfo:{type:Object,required:!0},reshare:{type:he,default:null},canReshare:{type:Boolean,required:!0},isExternal:{type:Boolean,default:!1},placeholder:{type:String,default:""}},setup:()=>({shareInputId:`share-input-${Math.random().toString(36).slice(2,7)}`}),data:()=>({config:new ce,loading:!1,query:"",recommendations:[],ShareSearch:OCA.Sharing.ShareSearch.state,suggestions:[],value:null}),computed:{externalResults(){return this.ShareSearch.results},inputPlaceholder(){const e=this.config.isRemoteShareAllowed;return this.canReshare?this.placeholder?this.placeholder:e?t("files_sharing","Name, email, or Federated Cloud ID …"):t("files_sharing","Name or email …"):t("files_sharing","Resharing is not allowed")},isValidQuery(){return this.query&&""!==this.query.trim()&&this.query.length>this.config.minSearchStringLength},options(){return this.isValidQuery?this.suggestions:this.recommendations},noResultText(){return this.loading?t("files_sharing","Searching …"):t("files_sharing","No elements found.")}},mounted(){this.isExternal||this.getRecommendations()},methods:{onSelected(e){this.value=null,this.openSharingDetails(e)},async asyncFind(e){this.query=e.trim(),this.isValidQuery&&(this.loading=!0,await this.debounceGetSuggestions(e))},async getSuggestions(e,i=!1){this.loading=!0,!0===(0,o.F)().files_sharing.sharee.query_lookup_default&&(i=!0);const s=[u.I.Remote,u.I.RemoteGroup],a=[],n=this.config.showFederatedSharesAsInternal||this.config.showFederatedSharesToTrustedServersAsInternal,l=!this.isExternal&&n||this.isExternal&&!n||this.isExternal&&this.config.showFederatedSharesToTrustedServersAsInternal;this.isExternal?!0===(0,o.F)().files_sharing.public.enabled&&a.push(u.I.Email):a.push(u.I.User,u.I.Group,u.I.Team,u.I.Room,u.I.Guest,u.I.Deck,u.I.ScienceMesh),l&&a.push(...s);let h=null;try{h=await r.Ay.get((0,d.KT)("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"dir"===this.fileInfo.type?"folder":"file",search:e,lookup:i,perPage:this.config.maxAutocompleteResults,shareType:a}})}catch(e){return void H.A.error("Error fetching suggestions",{error:e})}const{exact:c,...p}=h.data.ocs.data,g=Object.values(c).flat(),f=Object.values(p).flat(),A=this.filterOutExistingShares(g).filter(e=>this.filterByTrustedServer(e)).map(e=>this.formatForMultiselect(e)).sort((e,t)=>e.shareType-t.shareType),m=this.filterOutExistingShares(f).filter(e=>this.filterByTrustedServer(e)).map(e=>this.formatForMultiselect(e)).sort((e,t)=>e.shareType-t.shareType),_=[];p.lookupEnabled&&!i&&_.push({id:"global-lookup",isNoUser:!0,displayName:t("files_sharing","Search everywhere"),lookup:!0});const y=this.externalResults.filter(e=>!e.condition||e.condition(this)),w=A.concat(m).concat(y).concat(_),C=w.reduce((e,t)=>t.displayName?(e[t.displayName]||(e[t.displayName]=0),e[t.displayName]++,e):e,{});this.suggestions=w.map(e=>C[e.displayName]>1&&!e.desc?{...e,desc:e.shareWithDisplayNameUnique}:e),this.loading=!1,H.A.debug("sharing suggestions",{suggestions:this.suggestions})},debounceGetSuggestions:(0,G.A)(function(...e){this.getSuggestions(...e)},300),async getRecommendations(){this.loading=!0;let e=null;try{e=await r.Ay.get((0,d.KT)("apps/files_sharing/api/v1/sharees_recommended"),{params:{format:"json",itemType:this.fileInfo.type}})}catch(e){return void H.A.error("Error fetching recommendations",{error:e})}const t=this.externalResults.filter(e=>!e.condition||e.condition(this)),i=Object.values(e.data.ocs.data.exact).reduce((e,t)=>e.concat(t),[]);this.recommendations=this.filterOutExistingShares(i).filter(e=>this.filterByTrustedServer(e)).map(e=>this.formatForMultiselect(e)).concat(t),this.loading=!1,H.A.debug("sharing recommendations",{recommendations:this.recommendations})},filterOutExistingShares(e){return e.reduce((e,t)=>{if("object"!=typeof t)return e;try{if(t.value.shareType===u.I.User){if(t.value.shareWith===(0,n.HW)().uid)return e;if(this.reshare&&t.value.shareWith===this.reshare.owner)return e}if(t.value.shareType===u.I.Email){if(!this.isExternal)return e;if(-1!==this.linkShares.map(e=>e.shareWith).indexOf(t.value.shareWith.trim()))return e}else{const i=this.shares.reduce((e,t)=>(e[t.shareWith]=t.type,e),{}),s=t.value.shareWith.trim();if(s in i&&i[s]===t.value.shareType)return e}e.push(t)}catch{return e}return e},[])},shareTypeToIcon(e){switch(e){case u.I.Guest:return{icon:"icon-user",iconTitle:t("files_sharing","Guest")};case u.I.RemoteGroup:case u.I.Group:return{icon:"icon-group",iconTitle:t("files_sharing","Group")};case u.I.Email:return{icon:"icon-mail",iconTitle:t("files_sharing","Email")};case u.I.Team:return{icon:"icon-teams",iconTitle:t("files_sharing","Team")};case u.I.Room:return{icon:"icon-room",iconTitle:t("files_sharing","Talk conversation")};case u.I.Deck:return{icon:"icon-deck",iconTitle:t("files_sharing","Deck board")};case u.I.Sciencemesh:return{icon:"icon-sciencemesh",iconTitle:t("files_sharing","ScienceMesh")};default:return{}}},filterByTrustedServer(e){return!((e.value.shareType===u.I.Remote||e.value.shareType===u.I.RemoteGroup)&&this.config.showFederatedSharesToTrustedServersAsInternal&&!this.isExternal)||!0===e.value.isTrustedServer},formatForMultiselect(e){let i,s=e.name||e.label;return e.value.shareType===u.I.User&&this.config.shouldAlwaysShowUnique?i=e.shareWithDisplayNameUnique??"":e.value.shareType===u.I.Email?i=e.value.shareWith:e.value.shareType===u.I.Remote||e.value.shareType===u.I.RemoteGroup?this.config.showFederatedSharesAsInternal?(i=e.extra?.email?.value??"",s=e.extra?.name?.value??s):e.value.server&&(i=t("files_sharing","on {server}",{server:e.value.server})):i=e.shareWithDescription??"",{shareWith:e.value.shareWith,shareType:e.value.shareType,user:e.uuid||e.value.shareWith,isNoUser:e.value.shareType!==u.I.User,displayName:s,subname:i,shareWithDisplayNameUnique:e.shareWithDisplayNameUnique||"",...this.shareTypeToIcon(e.value.shareType)}}}};var Ae=s(77127),me={};me.styleTagTransform=O(),me.setAttributes=L(),me.insert=T().bind(null,"head"),me.domAPI=I(),me.insertStyleElement=B(),E()(Ae.A,me),Ae.A&&Ae.A.locals&&Ae.A.locals;const _e=(0,v.A)(fe,function(){var e=this,t=e._self._c;return t("div",{staticClass:"sharing-search"},[t("label",{staticClass:"hidden-visually",attrs:{for:e.shareInputId}},[e._v("\n\t\t"+e._s(e.isExternal?e.t("files_sharing","Enter external recipients"):e.t("files_sharing","Search for internal recipients"))+"\n\t")]),e._v(" "),t("NcSelect",{ref:"select",staticClass:"sharing-search__input",attrs:{"input-id":e.shareInputId,disabled:!e.canReshare,loading:e.loading,filterable:!1,placeholder:e.inputPlaceholder,"clear-search-on-blur":()=>!1,"user-select":!0,options:e.options,"label-outside":!0},on:{search:e.asyncFind,"option:selected":e.onSelected},scopedSlots:e._u([{key:"no-options",fn:function({search:t}){return[e._v("\n\t\t\t"+e._s(t?e.noResultText:e.placeholder)+"\n\t\t")]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}})],1)},[],!1,null,null,null).exports,ye=(0,a.pM)({__name:"SidebarTabExternalSection",props:{node:{type:Object,required:!0},section:{type:Object,required:!0}},setup(e){const t=e,i=(0,a.KR)();return(0,a.nT)(()=>{i.value&&(i.value.node=t.node)}),{__sfc:!0,props:t,sectionElement:i}}}),we=(0,v.A)(ye,function(){var e=this,t=e._self._c;return e._self._setupProxy,t(e.section.element,{ref:"sectionElement",tag:"component",domProps:{node:e.node}})},[],!1,null,null,null).exports,Ce=(0,a.pM)({__name:"SidebarTabExternalSectionLegacy",props:{fileInfo:{type:Object,required:!0},sectionCallback:{type:Function,required:!0}},setup(e){const t=e,i=(0,a.EW)(()=>t.sectionCallback(void 0,t.fileInfo));return{__sfc:!0,props:t,component:i}}});var ve=s(70544),be={};be.styleTagTransform=O(),be.setAttributes=L(),be.insert=T().bind(null,"head"),be.domAPI=I(),be.insertStyleElement=B(),E()(ve.A,be),ve.A&&ve.A.locals&&ve.A.locals;const xe=(0,v.A)(Ce,function(){var e=this,t=e._self._c;return t("div",{staticClass:"sharing-tab-external-section-legacy"},[t(e._self._setupProxy.component,{tag:"component",attrs:{"file-info":e.fileInfo}})],1)},[],!1,null,"3e4e67d2",null).exports;var Se=s(53334),ke=s(32073),Ee=s(48198),De=s(16879),Ie=s(88289),Pe=s(16044),Te=s(177);const Ne={name:"AccountCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Le=(0,v.A)(Ne,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon account-circle-outline-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,Re={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Be=(0,v.A)(Re,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon account-group-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports;var Ve=s(16039),Oe=s(66001),Fe=s(26690);const qe={name:"EmailIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Me=(0,v.A)(qe,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon email-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,He={name:"EyeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$e=(0,v.A)(He,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon eye-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports;var Ue=s(36600),We=s(25384),ze=s(33388),je=s(16502),Ge=s(83239);const Qe={name:"ShareCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ye=(0,v.A)(Qe,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon share-circle-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,Ze={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Je=(0,v.A)(Ze,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tray-arrow-up-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,Ke=(0,a.pM)({__name:"SidebarTabExternalAction",props:{action:{type:Object,required:!0},node:{type:Object,required:!0},share:{type:Object,required:!0}},setup(e,{expose:t}){const i=e;t({save:r});const s=(0,a.KR)(),n=(0,a.KR)();async function r(){await(n.value?.())}function o(e){n.value=e}return(0,a.nT)(()=>{s.value&&(s.value.node=(0,a.ux)(i.node),s.value.onSave=o,s.value.share=(0,a.ux)(i.share))}),{__sfc:!0,props:i,actionElement:s,savingCallback:n,save:r,onSave:o}}}),Xe=(0,v.A)(Ke,function(){var e=this,t=e._self._c,i=e._self._setupProxy;return t(e.action.element,{key:e.action.id,ref:"actionElement",tag:"component",domProps:{share:e.share,node:e.node,onSave:i.onSave}})},[],!1,null,null,null).exports,et={name:"SidebarTabExternalActionLegacy",props:{id:{type:String,required:!0},action:{type:Object,default:()=>({})},fileInfo:{type:Object,required:!0},share:{type:he,default:null}},computed:{data(){return this.action.data(this)}}},tt=(0,v.A)(et,function(){var e=this;return(0,e._self._c)(e.data.is,e._g(e._b({tag:"component"},"component",e.data,!1),e.action.handlers),[e._v("\n\t"+e._s(e.data.text)+"\n")])},[],!1,null,null,null).exports;var it=s(39177);const st=function(e=le,t={}){const i=(0,ie.UU)(e,{headers:t});function s(e){i.setHeaders({...t,"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})}return(0,n.zo)(s),s((0,n.do)()),(0,ie.Gu)().patch("fetch",(e,t)=>{const i=t.headers;return i?.method&&(t.method=i.method,delete i.method),fetch(e,t)}),i}();async function at(e){const t=`\n\t\t`xmlns:${e}="${window._nc_dav_namespaces?.[e]}"`).join(" ")}>\n\t\t\t\n\t\t\t\t${void 0===window._nc_dav_properties&&(window._nc_dav_properties=[...ae]),window._nc_dav_properties.map(e=>`<${e} />`).join(" ")}\n\t\t\t\n\t\t`;return function(e,t=oe,i=le){let s=(0,n.HW)()?.uid;if((0,te.f)())s=s??"anonymous";else if(!s)throw new Error("No user id found");const a=e.props,r=function(e=""){let t=se.P.NONE;return e?(e.includes("G")&&(t|=se.P.READ),e.includes("W")&&(t|=se.P.WRITE),e.includes("CK")&&(t|=se.P.CREATE),e.includes("NV")&&(t|=se.P.UPDATE),e.includes("D")&&(t|=se.P.DELETE),e.includes("R")&&(t|=se.P.SHARE),t):t}(a?.permissions),o=String(a?.["owner-id"]||s),l=a.fileid||0,h=new Date(Date.parse(e.lastmod)),c=new Date(Date.parse(a.creationdate)),d={id:l,source:`${i}${e.filename}`,mtime:isNaN(h.getTime())||0===h.getTime()?void 0:h,crtime:isNaN(c.getTime())||0===c.getTime()?void 0:c,mime:e.mime||"application/octet-stream",displayname:void 0!==a.displayname?String(a.displayname):void 0,size:a?.size||Number.parseInt(a.getcontentlength||"0"),status:l<0?se.c.FAILED:void 0,permissions:r,owner:o,root:t,attributes:{...e,...a,hasPreview:a?.["has-preview"]}};return delete d.attributes?.props,"file"===e.type?new se.a(d):new se.b(d)}((await st.stat(`${re()}${e}`,{details:!0,data:t})).data)}const nt=new ce;async function rt(e=!1){if(nt.passwordPolicy.api&&nt.passwordPolicy.api.generate)try{const t=await r.Ay.get(nt.passwordPolicy.api.generate);if(t.data.ocs.data.password)return e&&(0,_.Te)((0,Se.t)("files_sharing","Password created successfully")),t.data.ocs.data.password}catch(t){H.A.info("Error generating password from password_policy",{error:t}),e&&(0,_.Qg)((0,Se.t)("files_sharing","Error generating password from password policy"))}const t=new Uint8Array(10),i=52/255;!function(e){if(self?.crypto?.getRandomValues)return void self.crypto.getRandomValues(e);let t=e.length;for(;t--;)e[t]=Math.floor(256*Math.random())}(t);let s="";for(let e=0;e{},required:!0},share:{type:he,default:null},isUnique:{type:Boolean,default:!0}},data(){return{config:new ce,node:null,ShareType:u.I,errors:{},loading:!1,saving:!1,open:!1,passwordProtectedState:void 0,updateQueue:new it.A({concurrency:1}),reactiveState:this.share?.state}},computed:{path(){return(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/")},hasNote:{get(){return""!==this.share.note},set(e){this.share.note=e?null:""}},dateTomorrow:()=>new Date((new Date).setDate((new Date).getDate()+1)),lang(){const e=window.dayNamesShort?window.dayNamesShort:["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."],t=window.monthNamesShort?window.monthNamesShort:["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."];return{formatLocale:{firstDayOfWeek:window.firstDay?window.firstDay:0,monthsShort:t,weekdaysMin:e,weekdaysShort:e},monthFormat:"MMM"}},isNewShare(){return!this.share.id},isFolder(){return"dir"===this.fileInfo.type},isPublicShare(){const e=this.share.shareType??this.share.type;return[u.I.Link,u.I.Email].includes(e)},isRemoteShare(){return this.share.type===u.I.RemoteGroup||this.share.type===u.I.Remote},isShareOwner(){return this.share&&this.share.owner===(0,n.HW)().uid},isExpiryDateEnforced(){return this.isPublicShare?this.config.isDefaultExpireDateEnforced:this.isRemoteShare?this.config.isDefaultRemoteExpireDateEnforced:this.config.isDefaultInternalExpireDateEnforced},hasCustomPermissions(){const e=[ee.ALL,ee.ALL_FILE,ee.READ_ONLY,ee.FILE_DROP],t=-17&this.share.permissions;return!e.includes(t)},maxExpirationDateEnforced(){return this.isExpiryDateEnforced?this.isPublicShare?this.config.defaultExpirationDate:this.isRemoteShare?this.config.defaultRemoteExpirationDateString:this.config.defaultInternalExpirationDate:null},isPasswordProtected:{get(){return!!this.config.enforcePasswordForPublicLink||(void 0!==this.passwordProtectedState?this.passwordProtectedState:"string"==typeof this.share.newPassword||"string"==typeof this.share.password)},async set(e){e?(this.passwordProtectedState=!0,this.$set(this.share,"newPassword",await rt(!0))):(this.passwordProtectedState=!1,this.$set(this.share,"newPassword",""))}}},methods:{async getNode(){const e={path:this.path};try{this.node=await at(e.path),H.A.info("Fetched node:",{node:this.node})}catch(e){H.A.error("Error:",e)}},checkShare:e=>(!e.password||"string"==typeof e.password&&""!==e.password.trim())&&((!e.newPassword||"string"==typeof e.newPassword)&&!(e.expirationDate&&!e.expirationDate.isValid())),formatDateToString:e=>new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).toISOString().split("T")[0],onExpirationChange(e){if(!e)return this.share.expireDate=null,void this.$set(this.share,"expireDate",null);const t=e instanceof Date?e:new Date(e);this.share.expireDate=this.formatDateToString(t)},onNoteChange(e){this.$set(this.share,"newNote",e.trim())},onNoteSubmit(){this.share.newNote&&(this.share.note=this.share.newNote,this.$delete(this.share,"newNote"),this.queueUpdate("note"))},async onDelete(){try{this.loading=!0,this.open=!1,await this.deleteShare(this.share.id),H.A.debug("Share deleted",{shareId:this.share.id});const e="file"===this.share.itemType?t("files_sharing",'File "{path}" has been unshared',{path:this.share.path}):t("files_sharing",'Folder "{path}" has been unshared',{path:this.share.path});(0,_.Te)(e),this.$emit("remove:share",this.share),await this.getNode(),(0,ue.Ic)("files:node:updated",this.node)}catch{this.open=!0}finally{this.loading=!1}},queueUpdate(...e){if(0!==e.length){if(this.share.id){const i={};for(const t of e)"password"!==t?null===this.share[t]||void 0===this.share[t]?i[t]="":"object"==typeof this.share[t]?i[t]=JSON.stringify(this.share[t]):i[t]=this.share[t].toString():void 0!==this.share.newPassword&&(i[t]=this.share.newPassword);return this.updateQueue.add(async()=>{this.saving=!0,this.errors={};try{const t=await this.updateShare(this.share.id,i);e.includes("password")&&(this.share.password=this.share.newPassword||void 0,this.$delete(this.share,"newPassword"),this.share.passwordExpirationTime=t.password_expiration_time);for(const t of e)this.$delete(this.errors,t);(0,_.Te)(this.updateSuccessMessage(e))}catch(i){H.A.error("Could not update share",{error:i,share:this.share,propertyNames:e});const{message:s}=i;if(s&&""!==s){for(const t of e)this.onSyncError(t,s);(0,_.Qg)(s)}else(0,_.Qg)(t("files_sharing","Could not update share"))}finally{this.saving=!1}})}H.A.debug("Updated local share",{share:this.share})}},updateSuccessMessage(e){if(1!==e.length)return t("files_sharing","Share saved");switch(e[0]){case"expireDate":return t("files_sharing","Share expiry date saved");case"hideDownload":return t("files_sharing","Share hide-download state saved");case"label":return t("files_sharing","Share label saved");case"note":return t("files_sharing","Share note for recipient saved");case"password":return t("files_sharing","Share password saved");case"permissions":return t("files_sharing","Share permissions saved");default:return t("files_sharing","Share saved")}},onSyncError(e,t){switch("password"===e&&void 0!==this.share.newPassword&&(this.share.newPassword===this.share.password&&(this.share.password=""),this.$delete(this.share,"newPassword")),this.open=!0,e){case"password":case"pending":case"expireDate":case"label":case"note":{this.$set(this.errors,e,t);let i=this.$refs[e];if(i){i.$el&&(i=i.$el);const e=i.querySelector(".focusable");e&&e.focus()}break}case"sendPasswordByTalk":this.$set(this.errors,e,t),this.share.sendPasswordByTalk=!this.share.sendPasswordByTalk}},debounceQueueUpdate:(0,G.A)(function(e){this.queueUpdate(e)},500)}},lt={name:"SharingDetailsTab",components:{NcAvatar:p.A,NcButton:g.A,NcCheckboxRadioSwitch:ke.A,NcDateTimePickerNative:Ee.A,NcInputField:De.A,NcLoadingIcon:Ie.A,NcPasswordField:Pe.A,NcTextArea:Te.A,CloseIcon:Oe.A,CircleIcon:Ve.A,EditIcon:je.A,LinkIcon:Ue.A,GroupIcon:Be,ShareIcon:Ye,UserIcon:Le,UploadIcon:Je,ViewIcon:$e,MenuDownIcon:We.A,MenuUpIcon:ze.A,DotsHorizontalIcon:Fe.A,Refresh:Ge.A,SidebarTabExternalAction:Xe,SidebarTabExternalActionLegacy:tt},mixins:[ge,ot],props:{shareRequestValue:{type:Object,required:!1},fileInfo:{type:Object,required:!0},share:{type:Object,required:!0}},data(){return{writeNoteToRecipientIsChecked:!1,sharingPermission:ee.ALL.toString(),revertSharingPermission:ee.ALL.toString(),setCustomPermissions:!1,passwordError:!1,advancedSectionAccordionExpanded:!1,bundledPermissions:ee,isFirstComponentLoad:!0,test:!1,creating:!1,initialToken:this.share.token,loadingToken:!1,externalShareActions:[...window._nc_files_sharing_sidebar_actions?.values()??[]],ExternalShareActions:OCA.Sharing.ExternalShareActions.state}},computed:{title(){switch(this.share.type){case u.I.User:return t("files_sharing","Share with {user}",{user:this.share.shareWithDisplayName});case u.I.Email:return t("files_sharing","Share with email {email}",{email:this.share.shareWith});case u.I.Link:return t("files_sharing","Share link");case u.I.Group:return t("files_sharing","Share with group");case u.I.Room:return t("files_sharing","Share in conversation");case u.I.Remote:{const[e,i]=this.share.shareWith.split("@");return this.config.showFederatedSharesAsInternal?t("files_sharing","Share with {user}",{user:e}):t("files_sharing","Share with {user} on remote server {server}",{user:e,server:i})}case u.I.RemoteGroup:return t("files_sharing","Share with remote group");case u.I.Guest:return t("files_sharing","Share with guest");default:return this.share.id?t("files_sharing","Update share"):t("files_sharing","Create share")}},allPermissions(){return this.isFolder?this.bundledPermissions.ALL.toString():this.bundledPermissions.ALL_FILE.toString()},canEdit:{get(){return this.share.hasUpdatePermission},set(e){this.updateAtomicPermissions({isEditChecked:e})}},canCreate:{get(){return this.share.hasCreatePermission},set(e){this.updateAtomicPermissions({isCreateChecked:e})}},canDelete:{get(){return this.share.hasDeletePermission},set(e){this.updateAtomicPermissions({isDeleteChecked:e})}},canReshare:{get(){return this.share.hasSharePermission},set(e){this.updateAtomicPermissions({isReshareChecked:e})}},showInGridView:{get(){return this.getShareAttribute("config","grid_view",!1)},set(e){this.setShareAttribute("config","grid_view",e)}},canDownload:{get(){return this.getShareAttribute("permissions","download",!0)},set(e){this.setShareAttribute("permissions","download",e)}},hasRead:{get(){return this.share.hasReadPermission},set(e){this.updateAtomicPermissions({isReadChecked:e})}},hasExpirationDate:{get(){return this.isValidShareAttribute(this.share.expireDate)},set(e){this.share.expireDate=e?this.formatDateToString(this.defaultExpiryDate):""}},isFolder(){return"dir"===this.fileInfo.type},isSetDownloadButtonVisible(){return this.isFolder||["application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation"].includes(this.fileInfo.mimetype)},isPasswordEnforced(){return this.isPublicShare&&this.config.enforcePasswordForPublicLink},defaultExpiryDate(){return(this.isGroupShare||this.isUserShare)&&this.config.isDefaultInternalExpireDateEnabled?new Date(this.config.defaultInternalExpirationDate):this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?new Date(this.config.defaultRemoteExpireDateEnabled):this.isPublicShare&&this.config.isDefaultExpireDateEnabled?new Date(this.config.defaultExpirationDate):new Date((new Date).setDate((new Date).getDate()+1))},isUserShare(){return this.share.type===u.I.User},isGroupShare(){return this.share.type===u.I.Group},allowsFileDrop(){return!(!this.isFolder||!this.config.isPublicUploadEnabled||this.share.type!==u.I.Link&&this.share.type!==u.I.Email)},hasFileDropPermissions(){return this.share.permissions===this.bundledPermissions.FILE_DROP},shareButtonText(){return this.isNewShare?t("files_sharing","Save share"):t("files_sharing","Update share")},resharingIsPossible(){return this.config.isResharingAllowed&&this.share.type!==u.I.Link&&this.share.type!==u.I.Email},canSetEdit(){return this.fileInfo.sharePermissions&OC.PERMISSION_UPDATE||this.canEdit},canSetCreate(){return this.fileInfo.sharePermissions&OC.PERMISSION_CREATE||this.canCreate},canSetDelete(){return this.fileInfo.sharePermissions&OC.PERMISSION_DELETE||this.canDelete},canSetReshare(){return this.fileInfo.sharePermissions&OC.PERMISSION_SHARE||this.canReshare},canSetDownload(){return this.fileInfo.canDownload()||this.canDownload},canRemoveReadPermission(){return this.allowsFileDrop&&(this.share.type===u.I.Link||this.share.type===u.I.Email)},hasUnsavedPassword(){return void 0!==this.share.newPassword},passwordExpirationTime(){if(!this.isValidShareAttribute(this.share.passwordExpirationTime))return null;const e=(0,c.A)(this.share.passwordExpirationTime);return!(e.diff((0,c.A)())<0)&&e.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(e){this.share.sendPasswordByTalk=e}},isEmailShareType(){return!!this.share&&this.share.type===u.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPublicShare||!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword||void 0===OC.appswebroots.spreed)},canChangeHideDownload(){return this.fileInfo.shareAttributes.some(e=>"download"===e.key&&"permissions"===e.scope&&!1===e.value)},customPermissionsList(){const e={[Y]:this.t("files_sharing","Read"),[J]:this.t("files_sharing","Create"),[Z]:this.t("files_sharing","Edit"),[X]:this.t("files_sharing","Share"),[K]:this.t("files_sharing","Delete")};return[Y,...this.isFolder?[4]:[],Z,...this.resharingIsPossible?[X]:[],...this.isFolder?[8]:[]].filter(e=>{return t=this.share.permissions,i=e,0!==t&&(t&i)===i;var t,i}).map((t,i)=>0===i?e[t]:e[t].toLocaleLowerCase((0,Se.Z0)())).join(", ")},advancedControlExpandedValue(){return this.advancedSectionAccordionExpanded?"true":"false"},errorPasswordLabel(){if(this.passwordError)return t("files_sharing","Password field cannot be empty")},passwordHint(){if(!this.isNewShare&&!this.hasUnsavedPassword)return t("files_sharing","Replace current password")},sortedExternalShareActions(){return this.externalShareActions.filter(e=>e.enabled((0,a.ux)(this.share),(0,a.ux)(this.fileInfo.node))).sort((e,t)=>e.order-t.order)},externalLegacyShareActions(){return H.A.debug("legacy details tab",{ExternalShareActions:this.ExternalShareActions}),this.ExternalShareActions.actions.filter(e=>(e.shareType.includes(u.I.Link)||e.shareType.includes(u.I.Email))&&e.advanced)}},watch:{setCustomPermissions(e){this.sharingPermission=e?"custom":this.revertSharingPermission}},beforeMount(){this.initializePermissions(),this.initializeAttributes(),H.A.debug("Share object received",{share:this.share}),H.A.debug("Configuration object received",{config:this.config})},mounted(){this.$refs.quickPermissions?.querySelector("input:checked")?.focus()},methods:{setShareAttribute(e,t,i){this.share.attributes||this.$set(this.share,"attributes",[]);const s=this.share.attributes.find(i=>i.scope===e||i.key===t);s?s.value=i:this.share.attributes.push({scope:e,key:t,value:i})},getShareAttribute(e,t,i=void 0){const s=this.share.attributes?.find(i=>i.scope===e&&i.key===t);return s?.value??i},async generateNewToken(){if(!this.loadingToken){this.loadingToken=!0;try{this.share.token=await async function(){const{data:e}=await r.Ay.get((0,d.KT)("/apps/files_sharing/api/v1/token"));return e.ocs.data.token}()}catch{(0,_.Qg)(t("files_sharing","Failed to generate a new token"))}this.loadingToken=!1}},cancel(){this.share.token=this.initialToken,this.$emit("close-sharing-details")},updateAtomicPermissions({isReadChecked:e=this.hasRead,isEditChecked:t=this.canEdit,isCreateChecked:i=this.canCreate,isDeleteChecked:s=this.canDelete,isReshareChecked:a=this.canReshare}={}){this.isFolder||!i&&!s||(H.A.debug("Ignoring create/delete permissions for file share — only available for folders"),i=!1,s=!1);const n=0|(e?Y:0)|(i?4:0)|(s?8:0)|(t?Z:0)|(a?X:0);this.share.permissions=n},expandCustomPermissions(){this.advancedSectionAccordionExpanded||(this.advancedSectionAccordionExpanded=!0),this.toggleCustomPermissions()},toggleCustomPermissions(e){const t="custom"===this.sharingPermission;this.revertSharingPermission=t?"custom":e,this.setCustomPermissions=t},async initializeAttributes(){if(this.isNewShare)return(this.config.enableLinkPasswordByDefault||this.isPasswordEnforced)&&this.isPublicShare&&(this.$set(this.share,"newPassword",await rt(!0)),this.advancedSectionAccordionExpanded=!0),this.isPublicShare&&this.config.isDefaultExpireDateEnabled?this.share.expireDate=this.config.defaultExpirationDate.toDateString():this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?this.share.expireDate=this.config.defaultRemoteExpirationDateString.toDateString():this.config.isDefaultInternalExpireDateEnabled&&(this.share.expireDate=this.config.defaultInternalExpirationDate.toDateString()),void(this.isValidShareAttribute(this.share.expireDate)&&(this.advancedSectionAccordionExpanded=!0));!this.isValidShareAttribute(this.share.expireDate)&&this.isExpiryDateEnforced&&(this.hasExpirationDate=!0),(this.isValidShareAttribute(this.share.password)||this.isValidShareAttribute(this.share.expireDate)||this.isValidShareAttribute(this.share.label))&&(this.advancedSectionAccordionExpanded=!0),this.isValidShareAttribute(this.share.note)&&(this.writeNoteToRecipientIsChecked=!0,this.advancedSectionAccordionExpanded=!0)},handleShareType(){"shareType"in this.share?this.share.type=this.share.shareType:this.share.share_type&&(this.share.type=this.share.share_type)},handleDefaultPermissions(){if(this.isNewShare){const e=this.config.defaultPermissions,t=-17&e;t===ee.READ_ONLY||t===ee.ALL||t===ee.ALL_FILE?this.sharingPermission=t.toString():(this.sharingPermission="custom",this.share.permissions=e,this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)}this.canRemoveReadPermission||(this.hasRead=!0)},handleCustomPermissions(){this.isNewShare||!this.hasCustomPermissions&&!this.share.setCustomPermissions?this.share.permissions&&(this.sharingPermission=this.share.permissions.toString()):(this.sharingPermission="custom",this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)},initializePermissions(){this.handleShareType(),this.handleDefaultPermissions(),this.handleCustomPermissions()},async saveShare(){const e=["permissions","attributes","note","expireDate"],t=["label","hideDownload"];this.hasUnsavedPassword&&t.push("password"),this.config.allowCustomTokens&&t.push("token"),this.isPublicShare&&e.push(...t);const i=parseInt(this.sharingPermission);if(this.setCustomPermissions?this.updateAtomicPermissions():this.share.permissions=i,this.isFolder||this.share.permissions!==ee.ALL||(this.share.permissions=ee.ALL_FILE),this.writeNoteToRecipientIsChecked||(this.share.note=""),this.isPasswordProtected?this.isPasswordEnforced&&this.isNewShare&&!this.isValidShareAttribute(this.share.newPassword)&&(this.passwordError=!0):this.share.password="",this.hasExpirationDate||(this.share.expireDate=""),this.isNewShare){const t={permissions:this.share.permissions,shareType:this.share.type,shareWith:this.share.shareWith,attributes:this.share.attributes,note:this.share.note,fileInfo:this.fileInfo};let i;t.expireDate=this.hasExpirationDate?this.share.expireDate:"",this.isPasswordProtected&&(t.password=this.share.newPassword);try{this.creating=!0,i=await this.addShare(t)}catch{return void(this.creating=!1)}this.share._share.id=i.id,await this.queueUpdate(...e);for(const t of e)if(t in i&&t in this.share)try{i[t]=this.share[t]}catch{i._share[t]=this.share[t]}this.share=i,this.creating=!1,this.$emit("add:share",this.share)}else await this.queueUpdate(...e),this.$emit("update:share",this.share);if(await this.getNode(),(0,ue.Ic)("files:node:updated",this.node),this.$refs.externalShareActions?.length>0){const e=this.$refs.externalShareActions;await Promise.allSettled(e.map(e=>e.save()))}this.$refs.externalLinkActions?.length>0&&await Promise.allSettled(this.$refs.externalLinkActions.map(e=>"function"!=typeof e.$children.at(0)?.onSave?Promise.resolve():e.$children.at(0)?.onSave?.())),this.$emit("close-sharing-details")},async addShare(e){H.A.debug("Adding a new share from the input for",{share:e});const t=this.path;try{return await this.createShare({path:t,shareType:e.shareType,shareWith:e.shareWith,permissions:e.permissions,expireDate:e.expireDate,attributes:JSON.stringify(e.attributes),...e.note?{note:e.note}:{},...e.password?{password:e.password}:{}})}catch(e){throw H.A.error("Error while adding new share",{error:e}),e}},async removeShare(){await this.onDelete(),await this.getNode(),(0,ue.Ic)("files:node:updated",this.node),this.$emit("close-sharing-details")},onPasswordChange(e){if(""===e)return this.$delete(this.share,"newPassword"),void(this.passwordError=this.isNewShare&&this.isPasswordEnforced);this.passwordError=!this.isValidShareAttribute(e),this.$set(this.share,"newPassword",e)},onPasswordProtectedByTalkChange(){this.isEmailShareType||this.hasUnsavedPassword?this.queueUpdate("sendPasswordByTalk","password"):this.queueUpdate("sendPasswordByTalk")},isValidShareAttribute:e=>![null,void 0].includes(e)&&e.trim().length>0,getShareTypeIcon(e){switch(e){case u.I.Link:return Ue.A;case u.I.Guest:return Le;case u.I.RemoteGroup:case u.I.Group:return Be;case u.I.Email:return Me;case u.I.Team:return Ve.A;case u.I.Room:case u.I.Deck:case u.I.ScienceMesh:return Ye;default:return null}}}};var ht=s(81771),ct={};ct.styleTagTransform=O(),ct.setAttributes=L(),ct.insert=T().bind(null,"head"),ct.domAPI=I(),ct.insertStyleElement=B(),E()(ht.A,ct),ht.A&&ht.A.locals&&ht.A.locals;var dt=(0,v.A)(lt,function(){var e=this,t=e._self._c;return t("div",{staticClass:"sharingTabDetailsView"},[t("div",{staticClass:"sharingTabDetailsView__header"},[t("span",[e.isUserShare?t("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":e.share.shareType!==e.ShareType.User,user:e.share.shareWith,"display-name":e.share.shareWithDisplayName,"menu-position":"left",url:e.share.shareWithAvatar}}):e._e(),e._v(" "),t(e.getShareTypeIcon(e.share.type),{tag:"component",attrs:{size:32}})],1),e._v(" "),t("span",[t("h1",[e._v(e._s(e.title))])])]),e._v(" "),t("div",{staticClass:"sharingTabDetailsView__wrapper"},[t("div",{ref:"quickPermissions",staticClass:"sharingTabDetailsView__quick-permissions"},[t("div",[t("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"read-only",value:e.bundledPermissions.READ_ONLY.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:modelValue":e.toggleCustomPermissions},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ViewIcon",{attrs:{size:20}})]},proxy:!0}]),model:{value:e.sharingPermission,callback:function(t){e.sharingPermission=t},expression:"sharingPermission"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","View only"))+"\n\t\t\t\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"upload-edit",value:e.allPermissions,name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:modelValue":e.toggleCustomPermissions},scopedSlots:e._u([{key:"icon",fn:function(){return[t("EditIcon",{attrs:{size:20}})]},proxy:!0}]),model:{value:e.sharingPermission,callback:function(t){e.sharingPermission=t},expression:"sharingPermission"}},[e.allowsFileDrop?[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Allow upload and editing"))+"\n\t\t\t\t\t")]:[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Allow editing"))+"\n\t\t\t\t\t")]],2),e._v(" "),e.allowsFileDrop?t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-sharing-share-permissions-bundle":"file-drop","button-variant":!0,value:e.bundledPermissions.FILE_DROP.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:modelValue":e.toggleCustomPermissions},scopedSlots:e._u([{key:"icon",fn:function(){return[t("UploadIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1083194048),model:{value:e.sharingPermission,callback:function(t){e.sharingPermission=t},expression:"sharingPermission"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","File request"))+"\n\t\t\t\t\t"),t("small",{staticClass:"subline"},[e._v(e._s(e.t("files_sharing","Upload only")))])]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"custom",value:"custom",name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:modelValue":e.expandCustomPermissions},scopedSlots:e._u([{key:"icon",fn:function(){return[t("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}]),model:{value:e.sharingPermission,callback:function(t){e.sharingPermission=t},expression:"sharingPermission"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Custom permissions"))+"\n\t\t\t\t\t"),t("small",{staticClass:"subline"},[e._v(e._s(e.customPermissionsList))])])],1)]),e._v(" "),t("div",{staticClass:"sharingTabDetailsView__advanced-control"},[t("NcButton",{attrs:{id:"advancedSectionAccordionAdvancedControl",variant:"tertiary",alignment:"end-reverse","aria-controls":"advancedSectionAccordionAdvanced","aria-expanded":e.advancedControlExpandedValue},on:{click:function(t){e.advancedSectionAccordionExpanded=!e.advancedSectionAccordionExpanded}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.advancedSectionAccordionExpanded?t("MenuUpIcon"):t("MenuDownIcon")]},proxy:!0}])},[e._v("\n\t\t\t\t"+e._s(e.t("files_sharing","Advanced settings"))+"\n\t\t\t\t")])],1),e._v(" "),e.advancedSectionAccordionExpanded?t("div",{staticClass:"sharingTabDetailsView__advanced",attrs:{id:"advancedSectionAccordionAdvanced","aria-labelledby":"advancedSectionAccordionAdvancedControl",role:"region"}},[t("section",[e.isPublicShare?t("NcInputField",{staticClass:"sharingTabDetailsView__label",attrs:{autocomplete:"off",label:e.t("files_sharing","Share label")},model:{value:e.share.label,callback:function(t){e.$set(e.share,"label",t)},expression:"share.label"}}):e._e(),e._v(" "),e.config.allowCustomTokens&&e.isPublicShare&&!e.isNewShare?t("NcInputField",{attrs:{autocomplete:"off",label:e.t("files_sharing","Share link token"),"helper-text":e.t("files_sharing","Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information."),"show-trailing-button":"","trailing-button-label":e.loadingToken?e.t("files_sharing","Generating…"):e.t("files_sharing","Generate new token")},on:{"trailing-button-click":e.generateNewToken},scopedSlots:e._u([{key:"trailing-button-icon",fn:function(){return[e.loadingToken?t("NcLoadingIcon"):t("Refresh",{attrs:{size:20}})]},proxy:!0}],null,!1,4228062821),model:{value:e.share.token,callback:function(t){e.$set(e.share,"token",t)},expression:"share.token"}}):e._e(),e._v(" "),e.isPublicShare?[t("NcCheckboxRadioSwitch",{attrs:{disabled:e.isPasswordEnforced},model:{value:e.isPasswordProtected,callback:function(t){e.isPasswordProtected=t},expression:"isPasswordProtected"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Set password"))+"\n\t\t\t\t\t")]),e._v(" "),e.isPasswordProtected?t("NcPasswordField",{attrs:{autocomplete:"new-password","model-value":e.share.newPassword??"",error:e.passwordError,"helper-text":e.errorPasswordLabel||e.passwordHint,required:e.isPasswordEnforced&&e.isNewShare,label:e.t("files_sharing","Password")},on:{"update:value":e.onPasswordChange}}):e._e(),e._v(" "),e.isEmailShareType&&e.passwordExpirationTime?t("span",{attrs:{icon:"icon-info"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Password expires {passwordExpirationTime}",{passwordExpirationTime:e.passwordExpirationTime}))+"\n\t\t\t\t\t")]):e.isEmailShareType&&null!==e.passwordExpirationTime?t("span",{attrs:{icon:"icon-error"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Password expired"))+"\n\t\t\t\t\t")]):e._e()]:e._e(),e._v(" "),e.canTogglePasswordProtectedByTalkAvailable?t("NcCheckboxRadioSwitch",{on:{"update:modelValue":e.onPasswordProtectedByTalkChange},model:{value:e.isPasswordProtectedByTalk,callback:function(t){e.isPasswordProtectedByTalk=t},expression:"isPasswordProtectedByTalk"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Video verification"))+"\n\t\t\t\t")]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{disabled:e.isExpiryDateEnforced},model:{value:e.hasExpirationDate,callback:function(t){e.hasExpirationDate=t},expression:"hasExpirationDate"}},[e._v("\n\t\t\t\t\t"+e._s(e.isExpiryDateEnforced?e.t("files_sharing","Expiration date (enforced)"):e.t("files_sharing","Set expiration date"))+"\n\t\t\t\t")]),e._v(" "),e.hasExpirationDate?t("NcDateTimePickerNative",{attrs:{id:"share-date-picker","model-value":new Date(e.share.expireDate??e.dateTomorrow),min:e.dateTomorrow,max:e.maxExpirationDateEnforced,"hide-label":"",label:e.t("files_sharing","Expiration date"),placeholder:e.t("files_sharing","Expiration date"),type:"date"},on:{input:e.onExpirationChange}}):e._e(),e._v(" "),e.isPublicShare?t("NcCheckboxRadioSwitch",{attrs:{disabled:e.canChangeHideDownload},on:{"update:modelValue":function(t){return e.queueUpdate("hideDownload")}},model:{value:e.share.hideDownload,callback:function(t){e.$set(e.share,"hideDownload",t)},expression:"share.hideDownload"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Hide download"))+"\n\t\t\t\t")]):t("NcCheckboxRadioSwitch",{attrs:{disabled:!e.canSetDownload,"data-cy-files-sharing-share-permissions-checkbox":"download"},model:{value:e.canDownload,callback:function(t){e.canDownload=t},expression:"canDownload"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Allow download and sync"))+"\n\t\t\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{model:{value:e.writeNoteToRecipientIsChecked,callback:function(t){e.writeNoteToRecipientIsChecked=t},expression:"writeNoteToRecipientIsChecked"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Note to recipient"))+"\n\t\t\t\t")]),e._v(" "),e.writeNoteToRecipientIsChecked?[t("NcTextArea",{attrs:{label:e.t("files_sharing","Note to recipient"),placeholder:e.t("files_sharing","Enter a note for the share recipient")},model:{value:e.share.note,callback:function(t){e.$set(e.share,"note",t)},expression:"share.note"}})]:e._e(),e._v(" "),e.isPublicShare&&e.isFolder?t("NcCheckboxRadioSwitch",{model:{value:e.showInGridView,callback:function(t){e.showInGridView=t},expression:"showInGridView"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Show files in grid view"))+"\n\t\t\t\t")]):e._e(),e._v(" "),e._l(e.sortedExternalShareActions,function(i){return t("SidebarTabExternalAction",{key:i.id,ref:"externalShareActions",refInFor:!0,attrs:{action:i,node:e.fileInfo.node,share:e.share}})}),e._v(" "),e._l(e.externalLegacyShareActions,function(i){return t("SidebarTabExternalActionLegacy",{key:i.id,ref:"externalLinkActions",refInFor:!0,attrs:{id:i.id,action:i,"file-info":e.fileInfo,share:e.share}})}),e._v(" "),t("NcCheckboxRadioSwitch",{model:{value:e.setCustomPermissions,callback:function(t){e.setCustomPermissions=t},expression:"setCustomPermissions"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Custom permissions"))+"\n\t\t\t\t")]),e._v(" "),e.setCustomPermissions?t("section",{staticClass:"custom-permissions-group"},[t("NcCheckboxRadioSwitch",{attrs:{disabled:!e.canRemoveReadPermission,"data-cy-files-sharing-share-permissions-checkbox":"read"},model:{value:e.hasRead,callback:function(t){e.hasRead=t},expression:"hasRead"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Read"))+"\n\t\t\t\t\t")]),e._v(" "),e.isFolder?t("NcCheckboxRadioSwitch",{attrs:{disabled:!e.canSetCreate,"data-cy-files-sharing-share-permissions-checkbox":"create"},model:{value:e.canCreate,callback:function(t){e.canCreate=t},expression:"canCreate"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Create"))+"\n\t\t\t\t\t")]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{disabled:!e.canSetEdit,"data-cy-files-sharing-share-permissions-checkbox":"update"},model:{value:e.canEdit,callback:function(t){e.canEdit=t},expression:"canEdit"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Edit"))+"\n\t\t\t\t\t")]),e._v(" "),e.resharingIsPossible?t("NcCheckboxRadioSwitch",{attrs:{disabled:!e.canSetReshare,"data-cy-files-sharing-share-permissions-checkbox":"share"},model:{value:e.canReshare,callback:function(t){e.canReshare=t},expression:"canReshare"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Share"))+"\n\t\t\t\t\t")]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{disabled:!e.canSetDelete,"data-cy-files-sharing-share-permissions-checkbox":"delete"},model:{value:e.canDelete,callback:function(t){e.canDelete=t},expression:"canDelete"}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("files_sharing","Delete"))+"\n\t\t\t\t\t")])],1):e._e()],2)]):e._e()]),e._v(" "),t("div",{staticClass:"sharingTabDetailsView__footer"},[t("div",{staticClass:"button-group"},[t("NcButton",{attrs:{"data-cy-files-sharing-share-editor-action":"cancel"},on:{click:e.cancel}},[e._v("\n\t\t\t\t"+e._s(e.t("files_sharing","Cancel"))+"\n\t\t\t")]),e._v(" "),t("div",{staticClass:"sharingTabDetailsView__delete"},[e.isNewShare?e._e():t("NcButton",{attrs:{"aria-label":e.t("files_sharing","Delete share"),disabled:!1,readonly:!1,variant:"tertiary"},on:{click:function(t){return t.preventDefault(),e.removeShare.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Delete share"))+"\n\t\t\t\t")])],1),e._v(" "),t("NcButton",{attrs:{variant:"primary","data-cy-files-sharing-share-editor-action":"save",disabled:e.creating},on:{click:e.saveShare},scopedSlots:e._u([e.creating?{key:"icon",fn:function(){return[t("NcLoadingIcon")]},proxy:!0}:null],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.shareButtonText)+"\n\t\t\t\t")])],1)])])},[],!1,null,"34db2cbd",null);const ut=dt.exports;var pt=s(71225),gt=s(57908),ft=s(71711);const At={name:"SharingEntryInherited",components:{NcActionButton:y.A,NcActionLink:gt.A,NcActionText:ft.A,NcAvatar:p.A,SharingEntrySimple:M},mixins:[ot],props:{share:{type:he,required:!0}},computed:{viaFileTargetUrl(){return $(this.share.viaFileid)},viaFolderName(){return(0,pt.P8)(this.share.viaPath)}}};var mt=s(50618),_t={};_t.styleTagTransform=O(),_t.setAttributes=L(),_t.insert=T().bind(null,"head"),_t.domAPI=I(),_t.insertStyleElement=B(),E()(mt.A,_t),mt.A&&mt.A.locals&&mt.A.locals;var yt=(0,v.A)(At,function(){var e=this,t=e._self._c;return t("SharingEntrySimple",{key:e.share.id,staticClass:"sharing-entry__inherited",attrs:{title:e.share.shareWithDisplayName},scopedSlots:e._u([{key:"avatar",fn:function(){return[t("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:e.share.shareWith,"display-name":e.share.shareWithDisplayName}})]},proxy:!0}])},[e._v(" "),t("NcActionText",{attrs:{icon:"icon-user"}},[e._v("\n\t\t"+e._s(e.t("files_sharing","Added by {initiator}",{initiator:e.share.ownerDisplayName}))+"\n\t")]),e._v(" "),e.share.viaPath&&e.share.viaFileid?t("NcActionLink",{attrs:{icon:"icon-folder",href:e.viaFileTargetUrl}},[e._v("\n\t\t"+e._s(e.t("files_sharing","Via “{folder}”",{folder:e.viaFolderName}))+"\n\t")]):e._e(),e._v(" "),e.share.canDelete?t("NcActionButton",{attrs:{icon:"icon-close"},on:{click:function(t){return t.preventDefault(),e.onDelete.apply(null,arguments)}}},[e._v("\n\t\t"+e._s(e.t("files_sharing","Unshare"))+"\n\t")]):e._e()],1)},[],!1,null,"731a9650",null);const wt=yt.exports,Ct={name:"SharingInherited",components:{NcActionButton:y.A,SharingEntryInherited:wt,SharingEntrySimple:M},props:{fileInfo:{type:Object,required:!0}},data:()=>({loaded:!1,loading:!1,showInheritedShares:!1,shares:[]}),computed:{showInheritedSharesIcon(){return this.loading?"icon-loading-small":this.showInheritedShares?"icon-triangle-n":"icon-triangle-s"},mainTitle:()=>t("files_sharing","Others with access"),subTitle(){return this.showInheritedShares&&0===this.shares.length?t("files_sharing","No other accounts with access found"):""},toggleTooltip(){return"dir"===this.fileInfo.type?t("files_sharing","Toggle list of others with access to this directory"):t("files_sharing","Toggle list of others with access to this file")},fullPath(){return`${this.fileInfo.path}/${this.fileInfo.name}`.replace("//","/")}},watch:{fileInfo(){this.resetState()}},methods:{toggleInheritedShares(){this.showInheritedShares=!this.showInheritedShares,this.showInheritedShares?this.fetchInheritedShares():this.resetState()},async fetchInheritedShares(){this.loading=!0;try{const e=(0,d.KT)("apps/files_sharing/api/v1/shares/inherited?format=json&path={path}",{path:this.fullPath}),t=await r.Ay.get(e);this.shares=t.data.ocs.data.map(e=>new he(e)).sort((e,t)=>t.createdTime-e.createdTime),this.loaded=!0}catch{OC.Notification.showTemporary(t("files_sharing","Unable to fetch inherited shares"),{type:"error"})}finally{this.loading=!1}},resetState(){this.loaded=!1,this.loading=!1,this.showInheritedShares=!1,this.shares=[]},removeShare(e){const t=this.shares.findIndex(t=>t===e);this.shares.splice(t,1)}}};var vt=s(27920),bt={};bt.styleTagTransform=O(),bt.setAttributes=L(),bt.insert=T().bind(null,"head"),bt.domAPI=I(),bt.insertStyleElement=B(),E()(vt.A,bt),vt.A&&vt.A.locals&&vt.A.locals;var xt=(0,v.A)(Ct,function(){var e=this,t=e._self._c;return t("ul",{attrs:{id:"sharing-inherited-shares"}},[t("SharingEntrySimple",{staticClass:"sharing-entry__inherited",attrs:{title:e.mainTitle,subtitle:e.subTitle,"aria-expanded":e.showInheritedShares},scopedSlots:e._u([{key:"avatar",fn:function(){return[t("div",{staticClass:"avatar-shared icon-more-white"})]},proxy:!0}])},[e._v(" "),t("NcActionButton",{attrs:{icon:e.showInheritedSharesIcon,"aria-label":e.toggleTooltip,title:e.toggleTooltip},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.toggleInheritedShares.apply(null,arguments)}}})],1),e._v(" "),e._l(e.shares,function(i){return t("SharingEntryInherited",{key:i.id,attrs:{"file-info":e.fileInfo,share:i},on:{"remove:share":e.removeShare}})})],2)},[],!1,null,"cedf3238",null);const St=xt.exports;var kt=s(17816),Et=s.n(kt),Dt=s(9165),It=s(78928),Pt=s(44131),Tt=s(15502),Nt=s(94219),Lt=s(6695);const Rt={name:"CalendarBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Bt=(0,v.A)(Rt,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon calendar-blank-outline-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,Vt={name:"CheckBoldIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ot=(0,v.A)(Vt,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon check-bold-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,Ft={name:"ExclamationIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qt=(0,v.A)(Ft,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon exclamation-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,Mt={name:"LockOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ht=(0,v.A)(Mt,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon lock-outline-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports;var $t=s(96078);const Ut={name:"QrcodeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Wt=(0,v.A)(Ut,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon qrcode-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,zt={name:"TuneIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jt=(0,v.A)(zt,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tune-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports;var Gt=s(4604);const Qt={name:"ClockOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Yt=(0,v.A)(Qt,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon clock-outline-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,Zt={name:"ShareExpiryTime",components:{NcButton:g.A,NcPopover:A.A,NcDateTime:Gt.A,ClockIcon:Yt},props:{share:{type:Object,required:!0}},computed:{expiryTime(){return this.share?.expireDate?new Date(this.share.expireDate).getTime():null},timeFormat:()=>({dateStyle:"full",timeStyle:"short"})}};var Jt=s(5016),Kt={};Kt.styleTagTransform=O(),Kt.setAttributes=L(),Kt.insert=T().bind(null,"head"),Kt.domAPI=I(),Kt.insertStyleElement=B(),E()(Jt.A,Kt),Jt.A&&Jt.A.locals&&Jt.A.locals;const Xt=(0,v.A)(Zt,function(){var e=this,t=e._self._c;return t("div",{staticClass:"share-expiry-time"},[t("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:e._u([{key:"trigger",fn:function(){return[e.expiryTime?t("NcButton",{staticClass:"hint-icon",attrs:{variant:"tertiary","aria-label":e.t("files_sharing","Share expiration: {date}",{date:new Date(e.expiryTime).toLocaleString()})},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ClockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,3754271979)}):e._e()]},proxy:!0}])},[e._v(" "),t("h3",{staticClass:"hint-heading"},[e._v("\n\t\t\t"+e._s(e.t("files_sharing","Share Expiration"))+"\n\t\t")]),e._v(" "),e.expiryTime?t("p",{staticClass:"hint-body"},[t("NcDateTime",{attrs:{timestamp:e.expiryTime,format:e.timeFormat,"relative-time":!1}}),e._v(" ("),t("NcDateTime",{attrs:{timestamp:e.expiryTime}}),e._v(")\n\t\t")],1):e._e()])],1)},[],!1,null,"c9199db0",null).exports,ei={name:"EyeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ti=(0,v.A)(ei,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon eye-outline-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,ii={name:"TriangleSmallDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},si={name:"SharingEntryQuickShareSelect",components:{DropdownIcon:(0,v.A)(ii,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon triangle-small-down-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M8 9H16L12 16"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports,NcActions:x.A,NcActionButton:y.A},mixins:[ot,de],props:{share:{type:Object,required:!0}},emits:["open-sharing-details"],data:()=>({selectedOption:""}),computed:{ariaLabel(){return t("files_sharing",'Quick share options, the current selected is "{selectedOption}"',{selectedOption:this.selectedOption})},canViewText:()=>t("files_sharing","View only"),canEditText:()=>t("files_sharing","Can edit"),fileDropText:()=>t("files_sharing","File request"),customPermissionsText:()=>t("files_sharing","Custom permissions"),preSelectedOption(){const e=-17&this.share.permissions;return e===ee.READ_ONLY?this.canViewText:e===ee.ALL||e===ee.ALL_FILE?this.canEditText:e===ee.FILE_DROP?this.fileDropText:this.customPermissionsText},options(){const e=[{label:this.canViewText,icon:ti},{label:this.canEditText,icon:je.A}];return this.supportsFileDrop&&e.push({label:this.fileDropText,icon:Je}),e.push({label:this.customPermissionsText,icon:jt}),e},supportsFileDrop(){if(this.isFolder&&this.config.isPublicUploadEnabled){const e=this.share.type??this.share.shareType;return[u.I.Link,u.I.Email].includes(e)}return!1},dropDownPermissionValue(){switch(this.selectedOption){case this.canEditText:return this.isFolder?ee.ALL:ee.ALL_FILE;case this.fileDropText:return ee.FILE_DROP;case this.customPermissionsText:return"custom";case this.canViewText:default:return ee.READ_ONLY}}},created(){this.selectedOption=this.preSelectedOption},mounted(){(0,ue.B1)("update:share",e=>{e.id===this.share.id&&(this.share.permissions=e.permissions,this.selectedOption=this.preSelectedOption)})},unmounted(){(0,ue.al)("update:share")},methods:{selectOption(e){this.selectedOption=e,e===this.customPermissionsText?this.$emit("open-sharing-details"):(this.share.permissions=this.dropDownPermissionValue,this.queueUpdate("permissions"),this.$refs.quickShareActions.$refs.menuButton.$el.focus())}}},ai=si;var ni=s(24708),ri={};ri.styleTagTransform=O(),ri.setAttributes=L(),ri.insert=T().bind(null,"head"),ri.domAPI=I(),ri.insertStyleElement=B(),E()(ni.A,ri),ni.A&&ni.A.locals&&ni.A.locals;const oi=(0,v.A)(ai,function(){var e=this,t=e._self._c;return t("NcActions",{ref:"quickShareActions",staticClass:"share-select",attrs:{"menu-name":e.selectedOption,"aria-label":e.ariaLabel,variant:"tertiary-no-background",disabled:!e.share.canEdit,"force-name":""},scopedSlots:e._u([{key:"icon",fn:function(){return[t("DropdownIcon",{attrs:{size:15}})]},proxy:!0}])},[e._v(" "),e._l(e.options,function(i){return t("NcActionButton",{key:i.label,attrs:{type:"radio","model-value":i.label===e.selectedOption,"close-after-click":""},on:{click:function(t){return e.selectOption(i.label)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t(i.icon,{tag:"component"})]},proxy:!0}],null,!0)},[e._v("\n\t\t"+e._s(i.label)+"\n\t")])})],2)},[],!1,null,"11ecc4a6",null).exports,li={name:"SharingEntryLink",components:{NcActions:x.A,NcActionButton:y.A,NcActionCheckbox:It.N,NcActionInput:Pt.A,NcActionText:ft.A,NcActionSeparator:Tt.A,NcAvatar:p.A,NcDialog:Nt.A,NcIconSvgWrapper:Lt.A,NcLoadingIcon:Ie.A,VueQrcode:Et(),Tune:jt,IconCalendarBlank:Bt,IconQr:Wt,ErrorIcon:qt,LockIcon:Ht,CheckIcon:Ot,CloseIcon:Oe.A,PlusIcon:$t.A,SharingEntryQuickShareSelect:oi,ShareExpiryTime:Xt,SidebarTabExternalActionLegacy:tt},mixins:[ot,de],props:{canReshare:{type:Boolean,default:!0},index:{type:Number,default:null}},setup:()=>({mdiCheck:Dt.Tfj,mdiContentCopy:Dt.$BT}),data:()=>({shareCreationComplete:!1,copySuccess:!1,defaultExpirationDateEnabled:!1,pending:!1,ExternalShareActions:OCA.Sharing.ExternalShareActions.state,externalShareActions:[...window._nc_files_sharing_sidebar_inline_actions?.values()??[]],showQRCode:!1}),computed:{title(){const e={escape:!1};if(this.share&&this.share.id){if(!this.isShareOwner&&this.share.ownerDisplayName)return this.isEmailShareType?(0,Se.t)("files_sharing","{shareWith} by {initiator}",{shareWith:this.share.shareWith,initiator:this.share.ownerDisplayName},e):(0,Se.t)("files_sharing","Shared via link by {initiator}",{initiator:this.share.ownerDisplayName},e);if(this.share.label&&""!==this.share.label.trim())return this.isEmailShareType?this.isFileRequest?(0,Se.t)("files_sharing","File request ({label})",{label:this.share.label.trim()},e):(0,Se.t)("files_sharing","Mail share ({label})",{label:this.share.label.trim()},e):(0,Se.t)("files_sharing","Share link ({label})",{label:this.share.label.trim()},e);if(this.isEmailShareType)return this.share.shareWith&&""!==this.share.shareWith.trim()?this.share.shareWith:this.isFileRequest?(0,Se.t)("files_sharing","File request"):(0,Se.t)("files_sharing","Mail share");if(null===this.index)return(0,Se.t)("files_sharing","Share link")}return this.index>=1?(0,Se.t)("files_sharing","Share link ({index})",{index:this.index}):(0,Se.t)("files_sharing","Create public link")},subtitle(){return this.isEmailShareType&&this.title!==this.share.shareWith?this.share.shareWith:null},passwordExpirationTime(){if(null===this.share.passwordExpirationTime)return null;const e=(0,c.A)(this.share.passwordExpirationTime);return!(e.diff((0,c.A)())<0)&&e.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(e){this.share.sendPasswordByTalk=e}},isEmailShareType(){return!!this.share&&this.share.type===u.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword)},pendingDataIsMissing(){return this.pendingPassword||this.pendingEnforcedPassword||this.pendingDefaultExpirationDate||this.pendingEnforcedExpirationDate},pendingPassword(){return this.config.enableLinkPasswordByDefault&&this.isPendingShare},pendingEnforcedPassword(){return this.config.enforcePasswordForPublicLink&&this.isPendingShare},pendingEnforcedExpirationDate(){return this.config.isDefaultExpireDateEnforced&&this.isPendingShare},pendingDefaultExpirationDate(){return(this.config.defaultExpirationDate instanceof Date||!isNaN(new Date(this.config.defaultExpirationDate).getTime()))&&this.isPendingShare},isPendingShare(){return!(!this.share||this.share.id)},sharePolicyHasEnforcedProperties(){return this.config.enforcePasswordForPublicLink||this.config.isDefaultExpireDateEnforced},enforcedPropertiesMissing(){if(!this.sharePolicyHasEnforcedProperties)return!1;if(!this.share)return!0;if(this.share.id)return!0;const e=this.config.enforcePasswordForPublicLink&&!this.share.newPassword,t=this.config.isDefaultExpireDateEnforced&&!this.share.expireDate;return e||t},hasUnsavedPassword(){return void 0!==this.share.newPassword},shareLink(){return(0,d.Jv)("/s/{token}",{token:this.share.token},{baseURL:(0,d.$_)()})},actionsTooltip(){return(0,Se.t)("files_sharing",'Actions for "{title}"',{title:this.title})},copyLinkLabel(){return(0,Se.t)("files_sharing",'Copy public link of "{title}"',{title:this.title})},externalLegacyShareActions(){return H.A.error("external legacy actions",{ExternalShareActions:this.ExternalShareActions}),this.ExternalShareActions.actions.filter(e=>(e.shareType.includes(u.I.Link)||e.shareType.includes(u.I.Email))&&!e.advanced)},sortedExternalShareActions(){return this.externalShareActions.filter(e=>e.enabled((0,a.ux)(this.share),(0,a.ux)(this.fileInfo.node))).sort((e,t)=>e.order-t.order)},isPasswordPolicyEnabled(){return"object"==typeof this.config.passwordPolicy},canChangeHideDownload(){return this.fileInfo.shareAttributes.some(e=>"permissions"===e.scope&&"download"===e.key&&!1===e.value)},isFileRequest(){return this.share.isFileRequest}},mounted(){this.defaultExpirationDateEnabled=this.config.defaultExpirationDate instanceof Date,this.share&&this.isNewShare&&(this.share.expireDate=this.defaultExpirationDateEnabled?this.formatDateToString(this.config.defaultExpirationDate):"")},methods:{shareRequiresReview(e){return!e&&(this.defaultExpirationDateEnabled||this.config.enableLinkPasswordByDefault)},async onNewLinkShare(e=!1){if(H.A.debug("onNewLinkShare called (with this.share)",this.share),this.loading)return;const t={share_type:u.I.Link};if(this.config.isDefaultExpireDateEnforced&&(t.expiration=this.formatDateToString(this.config.defaultExpirationDate)),H.A.debug("Missing required properties?",this.enforcedPropertiesMissing),this.sharePolicyHasEnforcedProperties&&this.enforcedPropertiesMissing||this.shareRequiresReview(!0===e)){this.pending=!0,this.shareCreationComplete=!1,H.A.info("Share policy requires a review or has mandated properties (password, expirationDate)...");const e=new he(t);(this.config.enableLinkPasswordByDefault||this.config.enforcePasswordForPublicLink)&&this.$set(e,"newPassword",await rt(!0));const i=await new Promise(t=>{this.$emit("add:share",e,t)});this.open=!1,this.pending=!1,i.open=!0}else{if(this.share&&!this.share.id){if(this.checkShare(this.share)){try{H.A.info("Sending existing share to server",this.share),await this.pushNewLinkShare(this.share,!0),this.shareCreationComplete=!0,H.A.info("Share created on server",this.share)}catch(e){return this.pending=!1,H.A.error("Error creating share",e),!1}return!0}return this.open=!0,(0,_.Qg)((0,Se.t)("files_sharing","Error, please enter proper password and/or expiration date")),!1}const e=new he(t);await this.pushNewLinkShare(e),this.shareCreationComplete=!0}},async pushNewLinkShare(e,t){try{if(this.loading)return!0;this.loading=!0,this.errors={};const i={path:(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),shareType:u.I.Link,password:e.newPassword,expireDate:e.expireDate??"",attributes:JSON.stringify(this.fileInfo.shareAttributes)};H.A.debug("Creating link share with options",{options:i});const s=await this.createShare(i);let a;this.open=!1,this.shareCreationComplete=!0,H.A.debug("Link share created",{newShare:s}),a=t?await new Promise(e=>{this.$emit("update:share",s,e)}):await new Promise(e=>{this.$emit("add:share",s,e)}),await this.getNode(),(0,ue.Ic)("files:node:updated",this.node),this.config.enforcePasswordForPublicLink||a.copyLink(),(0,_.Te)((0,Se.t)("files_sharing","Link share created"))}catch(e){const t=e?.response?.data?.ocs?.meta?.message;if(!t)return(0,_.Qg)((0,Se.t)("files_sharing","Error while creating the share")),void H.A.error("Error while creating the share",{error:e});throw t.match(/password/i)?this.onSyncError("password",t):t.match(/date/i)?this.onSyncError("expireDate",t):this.onSyncError("pending",t),e}finally{this.loading=!1,this.shareCreationComplete=!0}},async copyLink(){try{await navigator.clipboard.writeText(this.shareLink),(0,_.Te)((0,Se.t)("files_sharing","Link copied")),this.$refs.copyButton.$el.focus()}catch(e){H.A.debug("Failed to automatically copy share link",{error:e}),window.prompt((0,Se.t)("files_sharing","Your browser does not support copying, please copy the link manually:"),this.shareLink)}finally{this.copySuccess=!0,setTimeout(()=>{this.copySuccess=!1},4e3)}},onPasswordChange(e){this.$set(this.share,"newPassword",e)},onPasswordDisable(){this.$set(this.share,"newPassword",""),this.share.id&&this.queueUpdate("password")},onPasswordSubmit(){this.hasUnsavedPassword&&(this.share.newPassword=this.share.newPassword.trim(),this.queueUpdate("password"))},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.newPassword=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},onMenuClose(){this.onPasswordSubmit(),this.onNoteSubmit()},onExpirationDateToggleUpdate(e){this.share.expireDate=e?this.formatDateToString(this.config.defaultExpirationDate):""},expirationDateChanged(e){const t=e?.target?.value,i=!!t&&!isNaN(new Date(t).getTime());this.defaultExpirationDateEnabled=i},onCancel(){this.shareCreationComplete||this.$emit("remove:share",this.share)}}},hi=li;var ci=s(12231),di={};di.styleTagTransform=O(),di.setAttributes=L(),di.insert=T().bind(null,"head"),di.domAPI=I(),di.insertStyleElement=B(),E()(ci.A,di),ci.A&&ci.A.locals&&ci.A.locals;var ui=(0,v.A)(hi,function(){var e=this,t=e._self._c;return t("li",{staticClass:"sharing-entry sharing-entry__link",class:{"sharing-entry--share":e.share}},[t("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":!0,"icon-class":e.isEmailShareType?"avatar-link-share icon-mail-white":"avatar-link-share icon-public-white"}}),e._v(" "),t("div",{staticClass:"sharing-entry__summary"},[t("div",{staticClass:"sharing-entry__desc"},[t("span",{staticClass:"sharing-entry__title",attrs:{title:e.title}},[e._v("\n\t\t\t\t"+e._s(e.title)+"\n\t\t\t")]),e._v(" "),e.subtitle?t("p",[e._v("\n\t\t\t\t"+e._s(e.subtitle)+"\n\t\t\t")]):e._e(),e._v(" "),e.share&&void 0!==e.share.permissions?t("SharingEntryQuickShareSelect",{attrs:{share:e.share,"file-info":e.fileInfo},on:{"open-sharing-details":function(t){return e.openShareDetailsForCustomSettings(e.share)}}}):e._e()],1),e._v(" "),t("div",{staticClass:"sharing-entry__actions"},[e.share&&e.share.expireDate?t("ShareExpiryTime",{attrs:{share:e.share}}):e._e(),e._v(" "),t("div",[e.share&&(!e.isEmailShareType||e.isFileRequest)&&e.share.token?t("NcActions",{ref:"copyButton",staticClass:"sharing-entry__copy"},[t("NcActionButton",{attrs:{"aria-label":e.copyLinkLabel,title:e.copySuccess?e.t("files_sharing","Successfully copied public link"):void 0,href:e.shareLink},on:{click:function(t){return t.preventDefault(),e.copyLink.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{staticClass:"sharing-entry__copy-icon",class:{"sharing-entry__copy-icon--success":e.copySuccess},attrs:{path:e.copySuccess?e.mdiCheck:e.mdiContentCopy}})]},proxy:!0}],null,!1,1728815133)})],1):e._e()],1)],1)]),e._v(" "),!e.pending&&e.pendingDataIsMissing?t("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":e.actionsTooltip,"menu-align":"right",open:e.open},on:{"update:open":function(t){e.open=t},close:e.onCancel}},[e.errors.pending?t("NcActionText",{staticClass:"error",scopedSlots:e._u([{key:"icon",fn:function(){return[t("ErrorIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1966124155)},[e._v("\n\t\t\t"+e._s(e.errors.pending)+"\n\t\t")]):t("NcActionText",{attrs:{icon:"icon-info"}},[e._v("\n\t\t\t"+e._s(e.t("files_sharing","Please enter the following required information before creating the share"))+"\n\t\t")]),e._v(" "),e.pendingPassword?t("NcActionCheckbox",{staticClass:"share-link-password-checkbox",attrs:{disabled:e.config.enforcePasswordForPublicLink||e.saving},on:{uncheck:e.onPasswordDisable},model:{value:e.isPasswordProtected,callback:function(t){e.isPasswordProtected=t},expression:"isPasswordProtected"}},[e._v("\n\t\t\t"+e._s(e.config.enforcePasswordForPublicLink?e.t("files_sharing","Password protection (enforced)"):e.t("files_sharing","Password protection"))+"\n\t\t")]):e._e(),e._v(" "),e.pendingEnforcedPassword||e.isPasswordProtected?t("NcActionInput",{staticClass:"share-link-password",attrs:{label:e.t("files_sharing","Enter a password"),disabled:e.saving,required:e.config.enableLinkPasswordByDefault||e.config.enforcePasswordForPublicLink,minlength:e.isPasswordPolicyEnabled&&e.config.passwordPolicy.minLength,autocomplete:"new-password"},on:{submit:function(t){return e.onNewLinkShare(!0)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("LockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2056568168),model:{value:e.share.newPassword,callback:function(t){e.$set(e.share,"newPassword",t)},expression:"share.newPassword"}}):e._e(),e._v(" "),e.pendingDefaultExpirationDate?t("NcActionCheckbox",{staticClass:"share-link-expiration-date-checkbox",attrs:{disabled:e.pendingEnforcedExpirationDate||e.saving},on:{"update:model-value":e.onExpirationDateToggleUpdate},model:{value:e.defaultExpirationDateEnabled,callback:function(t){e.defaultExpirationDateEnabled=t},expression:"defaultExpirationDateEnabled"}},[e._v("\n\t\t\t"+e._s(e.config.isDefaultExpireDateEnforced?e.t("files_sharing","Enable link expiration (enforced)"):e.t("files_sharing","Enable link expiration"))+"\n\t\t")]):e._e(),e._v(" "),(e.pendingDefaultExpirationDate||e.pendingEnforcedExpirationDate)&&e.defaultExpirationDateEnabled?t("NcActionInput",{staticClass:"share-link-expire-date",attrs:{"data-cy-files-sharing-expiration-date-input":"",label:e.pendingEnforcedExpirationDate?e.t("files_sharing","Enter expiration date (enforced)"):e.t("files_sharing","Enter expiration date"),disabled:e.saving,"is-native-picker":!0,"hide-label":!0,"model-value":new Date(e.share.expireDate),type:"date",min:e.dateTomorrow,max:e.maxExpirationDateEnforced},on:{"update:model-value":e.onExpirationChange,change:e.expirationDateChanged},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconCalendarBlank",{attrs:{size:20}})]},proxy:!0}],null,!1,3418578971)}):e._e(),e._v(" "),t("NcActionButton",{attrs:{disabled:e.pendingEnforcedPassword&&!e.share.newPassword},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.onNewLinkShare(!0)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("CheckIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2630571749)},[e._v("\n\t\t\t"+e._s(e.t("files_sharing","Create share"))+"\n\t\t")]),e._v(" "),t("NcActionButton",{on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.onCancel.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[e._v("\n\t\t\t"+e._s(e.t("files_sharing","Cancel"))+"\n\t\t")])],1):e.loading?t("NcLoadingIcon",{staticClass:"sharing-entry__loading"}):t("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":e.actionsTooltip,"menu-align":"right",open:e.open},on:{"update:open":function(t){e.open=t},close:e.onMenuClose}},[e.share?[e.share.canEdit&&e.canReshare?[t("NcActionButton",{attrs:{disabled:e.saving,"close-after-click":!0},on:{click:function(t){return t.preventDefault(),e.openSharingDetails.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Tune",{attrs:{size:20}})]},proxy:!0}],null,!1,1300586850)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_sharing","Customize link"))+"\n\t\t\t\t")])]:e._e(),e._v(" "),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(t){t.preventDefault(),e.showQRCode=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconQr",{attrs:{size:20}})]},proxy:!0}],null,!1,1082198240)},[e._v("\n\t\t\t\t"+e._s(e.t("files_sharing","Generate QR code"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.sortedExternalShareActions,function(i){return t("NcActionButton",{key:i.id,on:{click:function(t){return i.exec(e.share,e.fileInfo.node)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:i.iconSvg}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(i.label(e.share,e.fileInfo.node))+"\n\t\t\t")])}),e._v(" "),e._l(e.externalLegacyShareActions,function(i){return t("SidebarTabExternalActionLegacy",{key:i.id,attrs:{id:i.id,action:i,"file-info":e.fileInfo,share:e.share}})}),e._v(" "),!e.isEmailShareType&&e.canReshare?t("NcActionButton",{staticClass:"new-share-link",on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.onNewLinkShare.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("PlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2953566425)},[e._v("\n\t\t\t\t"+e._s(e.t("files_sharing","Add another link"))+"\n\t\t\t")]):e._e(),e._v(" "),e.share.canDelete?t("NcActionButton",{attrs:{disabled:e.saving},on:{click:function(t){return t.preventDefault(),e.onDelete.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[e._v("\n\t\t\t\t"+e._s(e.t("files_sharing","Unshare"))+"\n\t\t\t")]):e._e()]:e.canReshare?t("NcActionButton",{staticClass:"new-share-link",attrs:{title:e.t("files_sharing","Create a new share link"),"aria-label":e.t("files_sharing","Create a new share link"),icon:e.loading?"icon-loading-small":"icon-add"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.onNewLinkShare.apply(null,arguments)}}}):e._e()],2),e._v(" "),e.showQRCode?t("NcDialog",{attrs:{size:"normal",open:e.showQRCode,name:e.title,"close-on-click-outside":!0},on:{"update:open":function(t){e.showQRCode=t},close:function(t){e.showQRCode=!1}}},[t("div",{staticClass:"qr-code-dialog"},[t("VueQrcode",{staticClass:"qr-code-dialog__img",attrs:{tag:"img",value:e.shareLink}})],1)]):e._e()],1)},[],!1,null,"4ca4172c",null);const pi={name:"SharingLinkList",components:{SharingEntryLink:ui.exports},mixins:[de],props:{fileInfo:{type:Object,required:!0},shares:{type:Array,required:!0},canReshare:{type:Boolean,required:!0}},data:()=>({canLinkShare:(0,o.F)().files_sharing.public.enabled}),computed:{hasLinkShares(){return this.shares.filter(e=>e.type===u.I.Link).length>0},hasShares(){return this.shares.length>0}},methods:{t:Se.t,addShare(e,t){this.shares.push(e),this.awaitForShare(e,t)},awaitForShare(e,t){this.$nextTick(()=>{const i=this.$children.find(t=>t.share===e);i&&t(i)})},removeShare(e){const t=this.shares.findIndex(t=>t===e);this.shares.splice(t,1)}}};var gi=(0,v.A)(pi,function(){var e=this,t=e._self._c;return e.canLinkShare?t("ul",{staticClass:"sharing-link-list",attrs:{"aria-label":e.t("files_sharing","Link shares")}},[e.hasShares?e._l(e.shares,function(i,s){return t("SharingEntryLink",{key:i.id,attrs:{index:e.shares.length>1?s+1:null,"can-reshare":e.canReshare,share:e.shares[s],"file-info":e.fileInfo},on:{"update:share":[function(t){return e.$set(e.shares,s,t)},function(t){return e.awaitForShare(...arguments)}],"add:share":function(t){return e.addShare(...arguments)},"remove:share":e.removeShare,"open-sharing-details":function(t){return e.openSharingDetails(i)}}})}):e._e(),e._v(" "),!e.hasLinkShares&&e.canReshare?t("SharingEntryLink",{attrs:{"can-reshare":e.canReshare,"file-info":e.fileInfo},on:{"add:share":e.addShare}}):e._e()],2):e._e()},[],!1,null,null,null);const fi=gi.exports,Ai={name:"SharingEntry",components:{NcButton:g.A,NcAvatar:p.A,DotsHorizontalIcon:Fe.A,NcSelect:Q.default,ShareExpiryTime:Xt,SharingEntryQuickShareSelect:oi},mixins:[ot,de],computed:{title(){let e=this.share.shareWithDisplayName;const i=this.config.showFederatedSharesAsInternal||this.share.isTrustedServer&&this.config.showFederatedSharesToTrustedServersAsInternal;return this.share.type===u.I.Group||this.share.type===u.I.RemoteGroup&&i?e+=` (${t("files_sharing","group")})`:this.share.type===u.I.Room?e+=` (${t("files_sharing","conversation")})`:this.share.type!==u.I.Remote||i?this.share.type===u.I.RemoteGroup?e+=` (${t("files_sharing","remote group")})`:this.share.type===u.I.Guest&&(e+=` (${t("files_sharing","guest")})`):e+=` (${t("files_sharing","remote")})`,!this.isShareOwner&&this.share.ownerDisplayName&&(e+=" "+t("files_sharing","by {initiator}",{initiator:this.share.ownerDisplayName})),e},tooltip(){if(this.share.owner!==this.share.uidFileOwner){const e={user:this.share.shareWithDisplayName,owner:this.share.ownerDisplayName};return this.share.type===u.I.Group?t("files_sharing","Shared with the group {user} by {owner}",e):this.share.type===u.I.Room?t("files_sharing","Shared with the conversation {user} by {owner}",e):t("files_sharing","Shared with {user} by {owner}",e)}return null},hasStatus(){return this.share.type===u.I.User&&"object"==typeof this.share.status&&!Array.isArray(this.share.status)}},methods:{onMenuClose(){this.onNoteSubmit()}}};var mi=s(10322),_i={};_i.styleTagTransform=O(),_i.setAttributes=L(),_i.insert=T().bind(null,"head"),_i.domAPI=I(),_i.insertStyleElement=B(),E()(mi.A,_i),mi.A&&mi.A.locals&&mi.A.locals;const yi={name:"SharingList",components:{SharingEntry:(0,v.A)(Ai,function(){var e=this,t=e._self._c;return t("li",{staticClass:"sharing-entry"},[t("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":e.share.type!==e.ShareType.User,user:e.share.shareWith,"display-name":e.share.shareWithDisplayName,"menu-position":"left",url:e.share.shareWithAvatar}}),e._v(" "),t("div",{staticClass:"sharing-entry__summary"},[t(e.share.shareWithLink?"a":"div",{tag:"component",staticClass:"sharing-entry__summary__desc",attrs:{title:e.tooltip,"aria-label":e.tooltip,href:e.share.shareWithLink}},[t("span",[e._v(e._s(e.title)+"\n\t\t\t\t"),e.isUnique?e._e():t("span",{staticClass:"sharing-entry__summary__desc-unique"},[e._v("\n\t\t\t\t\t("+e._s(e.share.shareWithDisplayNameUnique)+")\n\t\t\t\t")]),e._v(" "),e.hasStatus&&e.share.status.message?t("small",[e._v("("+e._s(e.share.status.message)+")")]):e._e()])]),e._v(" "),t("SharingEntryQuickShareSelect",{attrs:{share:e.share,"file-info":e.fileInfo},on:{"open-sharing-details":function(t){return e.openShareDetailsForCustomSettings(e.share)}}})],1),e._v(" "),e.share&&e.share.expireDate?t("ShareExpiryTime",{attrs:{share:e.share}}):e._e(),e._v(" "),e.share.canEdit?t("NcButton",{staticClass:"sharing-entry__action",attrs:{"data-cy-files-sharing-share-actions":"","aria-label":e.t("files_sharing","Open Sharing Details"),variant:"tertiary"},on:{click:function(t){return e.openSharingDetails(e.share)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1700783217)}):e._e()],1)},[],!1,null,"469e5e80",null).exports},mixins:[de],props:{fileInfo:{type:Object,required:!0},shares:{type:Array,required:!0}},setup:()=>({t:Se.t}),computed:{hasShares(){return 0===this.shares.length},isUnique(){return e=>[...this.shares].filter(t=>e.type===u.I.User&&e.shareWithDisplayName===t.shareWithDisplayName).length<=1}}},wi=(0,v.A)(yi,function(){var e=this,t=e._self._c;return t("ul",{staticClass:"sharing-sharee-list",attrs:{"aria-label":e.t("files_sharing","Shares")}},e._l(e.shares,function(i){return t("SharingEntry",{key:i.id,attrs:{"file-info":e.fileInfo,share:i,"is-unique":e.isUnique(i)},on:{"open-sharing-details":function(t){return e.openSharingDetails(i)}}})}),1)},[],!1,null,null,null).exports,Ci=window.OC.theme.productName,vi={name:"SharingTab",components:{InfoIcon:m.A,NcAvatar:p.A,NcButton:g.A,NcCollectionList:f.N,NcPopover:A.A,SharingEntryInternal:j,SharingEntrySimple:M,SharingInherited:St,SharingInput:_e,SharingLinkList:fi,SharingList:wi,SharingDetailsTab:ut,SidebarTabExternalSection:we,SidebarTabExternalSectionLegacy:xe},mixins:[de],props:{fileInfo:{type:Object,required:!0}},data:()=>({config:new ce,deleteEvent:null,error:"",expirationInterval:null,loading:!0,reshare:null,sharedWithMe:{},shares:[],linkShares:[],externalShares:[],legacySections:OCA.Sharing.ShareTabSections.getSections(),sections:[...window._nc_files_sharing_sidebar_sections?.values()??[]],projectsEnabled:(0,h.C)("core","projects_enabled",!1),showSharingDetailsView:!1,shareDetailsData:{},returnFocusElement:null,internalSharesHelpText:t("files_sharing","Share files within your organization. Recipients who can already view the file can also use this link for easy access."),externalSharesHelpText:t("files_sharing","Share files with others outside your organization via public links and email addresses. You can also share to {productName} accounts on other instances using their federated cloud ID.",{productName:Ci}),additionalSharesHelpText:t("files_sharing","Shares from apps or other sources which are not included in internal or external shares.")}),computed:{hasExternalSections(){return this.sections.length>0||this.legacySections.length>0},sortedExternalSections(){return this.sections.filter(e=>e.enabled(this.fileInfo.node)).sort((e,t)=>e.order-t.order)},isSharedWithMe(){return!!this.sharedWithMe?.user},isLinkSharingAllowed(){if(!(0,n.HW)())return!1;const e=(0,o.F)();return!0===(e.files_sharing?.public||{}).enabled},canReshare(){return!!(this.fileInfo.permissions&OC.PERMISSION_SHARE)||!!(this.reshare&&this.reshare.hasSharePermission&&this.config.isResharingAllowed)},internalShareInputPlaceholder(){return this.config.showFederatedSharesAsInternal&&this.config.isFederationEnabled?t("files_sharing","Type names, teams, federated cloud IDs"):t("files_sharing","Type names or teams")},externalShareInputPlaceholder(){return this.isLinkSharingAllowed?this.config.showFederatedSharesAsInternal||this.config.isFederationEnabled?t("files_sharing","Type an email or federated cloud ID"):t("files_sharing","Type an email"):this.config.isFederationEnabled?t("files_sharing","Type a federated cloud ID"):""}},watch:{fileInfo:{immediate:!0,handler(e,t){void 0!==t?.id&&t?.id===e?.id||(this.resetState(),this.getShares())}}},methods:{async getShares(){try{this.loading=!0;const e=(0,d.KT)("apps/files_sharing/api/v1/shares"),t="json",i=(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),s=r.Ay.get(e,{params:{format:t,path:i,reshares:!0}}),a=r.Ay.get(e,{params:{format:t,path:i,shared_with_me:!0}}),[n,o]=await Promise.all([s,a]);this.loading=!1,this.processSharedWithMe(o),this.processShares(n)}catch(e){this.error=e?.response?.data?.ocs?.meta?.message?e.response.data.ocs.meta.message:t("files_sharing","Unable to load the shares list"),this.loading=!1,H.A.error("Error loading the shares list",e)}},resetState(){clearInterval(this.expirationInterval),this.loading=!0,this.error="",this.sharedWithMe={},this.shares=[],this.linkShares=[],this.externalShares=[],this.showSharingDetailsView=!1,this.shareDetailsData={}},updateExpirationSubtitle(e){const i=(0,c.A)(e.expireDate).unix();this.$set(this.sharedWithMe,"subtitle",t("files_sharing","Expires {relativetime}",{relativetime:(0,c.A)(1e3*i).fromNow()})),(0,c.A)().unix()>i&&(clearInterval(this.expirationInterval),this.$set(this.sharedWithMe,"subtitle",t("files_sharing","this share just expired.")))},processShares({data:e}){if(e.ocs&&e.ocs.data&&e.ocs.data.length>0){const t=(0,l.My)(e.ocs.data.map(e=>new he(e)),[e=>e.shareWithDisplayName,e=>e.label,e=>e.createdTime]);for(const e of t)[u.I.Link,u.I.Email].includes(e.type)?this.linkShares.push(e):[u.I.Remote,u.I.RemoteGroup].includes(e.type)?this.config.showFederatedSharesToTrustedServersAsInternal?e.isTrustedServer?this.shares.push(e):this.externalShares.push(e):this.config.showFederatedSharesAsInternal?this.shares.push(e):this.externalShares.push(e):this.shares.push(e);H.A.debug(`Processed ${this.linkShares.length} link share(s)`),H.A.debug(`Processed ${this.shares.length} share(s)`),H.A.debug(`Processed ${this.externalShares.length} external share(s)`)}},processSharedWithMe({data:e}){if(e.ocs&&e.ocs.data&&e.ocs.data[0]){const i=new he(e),s=function(e){return e.type===u.I.Group?t("files_sharing","Shared with you and the group {group} by {owner}",{group:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===u.I.Team?t("files_sharing","Shared with you and {circle} by {owner}",{circle:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===u.I.Room?e.shareWithDisplayName?t("files_sharing","Shared with you and the conversation {conversation} by {owner}",{conversation:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you in a conversation by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1})}(i),a=i.ownerDisplayName,n=i.owner;this.sharedWithMe={displayName:a,title:s,user:n},this.reshare=i,i.expireDate&&(0,c.A)(i.expireDate).unix()>(0,c.A)().unix()&&(this.updateExpirationSubtitle(i),this.expirationInterval=setInterval(this.updateExpirationSubtitle,1e4,i))}else this.fileInfo&&void 0!==this.fileInfo.shareOwnerId&&this.fileInfo.shareOwnerId!==(0,n.HW)().uid&&(this.sharedWithMe={displayName:this.fileInfo.shareOwner,title:t("files_sharing","Shared with you by {owner}",{owner:this.fileInfo.shareOwner},void 0,{escape:!1}),user:this.fileInfo.shareOwnerId})},addShare(e,t=()=>{}){e.type===u.I.Email?this.linkShares.unshift(e):[u.I.Remote,u.I.RemoteGroup].includes(e.type)?(this.config.showFederatedSharesAsInternal&&this.shares.unshift(e),this.config.showFederatedSharesToTrustedServersAsInternal?e.isTrustedServer&&this.shares.unshift(e):this.externalShares.unshift(e)):this.shares.unshift(e),this.awaitForShare(e,t)},removeShare(e){const t=e.type===u.I.Email||e.type===u.I.Link?this.linkShares:this.shares,i=t.findIndex(t=>t.id===e.id);-1!==i&&t.splice(i,1)},awaitForShare(e,t){this.$nextTick(()=>{let i=this.$refs.shareList;e.type===u.I.Email&&(i=this.$refs.linkShareList);const s=i.$children.find(t=>t.share===e);s&&t(s)})},toggleShareDetailsView(e){if(!this.showSharingDetailsView)if(Array.from(document.activeElement.classList).some(e=>e.startsWith("action-"))){const e=document.activeElement.closest('[role="menu"]')?.id;this.returnFocusElement=document.querySelector(`[aria-controls="${e}"]`)}else this.returnFocusElement=document.activeElement;e&&(this.shareDetailsData=e),this.showSharingDetailsView=!this.showSharingDetailsView,this.showSharingDetailsView||this.$nextTick(()=>{this.returnFocusElement?.focus(),this.returnFocusElement=null})}}},bi=vi;var xi=s(15667),Si={};Si.styleTagTransform=O(),Si.setAttributes=L(),Si.insert=T().bind(null,"head"),Si.domAPI=I(),Si.insertStyleElement=B(),E()(xi.A,Si),xi.A&&xi.A.locals&&xi.A.locals;const ki=(0,v.A)(bi,function(){var e=this,t=e._self._c;return t("div",{staticClass:"sharingTab",class:{"icon-loading":e.loading}},[e.error?t("div",{staticClass:"emptycontent",class:{emptyContentWithSections:e.hasExternalSections}},[t("div",{staticClass:"icon icon-error"}),e._v(" "),t("h2",[e._v(e._s(e.error))])]):e._e(),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:!e.showSharingDetailsView,expression:"!showSharingDetailsView"}],staticClass:"sharingTab__content"},[e.isSharedWithMe?t("ul",[t("SharingEntrySimple",e._b({staticClass:"sharing-entry__reshare",scopedSlots:e._u([{key:"avatar",fn:function(){return[t("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:e.sharedWithMe.user,"display-name":e.sharedWithMe.displayName}})]},proxy:!0}],null,!1,3197855346)},"SharingEntrySimple",e.sharedWithMe,!1))],1):e._e(),e._v(" "),t("section",[t("div",{staticClass:"section-header"},[t("h4",[e._v(e._s(e.t("files_sharing","Internal shares")))]),e._v(" "),t("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:e._u([{key:"trigger",fn:function(){return[t("NcButton",{staticClass:"hint-icon",attrs:{variant:"tertiary-no-background","aria-label":e.t("files_sharing","Internal shares explanation")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[e._v(" "),t("p",{staticClass:"hint-body"},[e._v("\n\t\t\t\t\t\t"+e._s(e.internalSharesHelpText)+"\n\t\t\t\t\t")])])],1),e._v(" "),e.loading?e._e():t("SharingInput",{attrs:{"can-reshare":e.canReshare,"file-info":e.fileInfo,"link-shares":e.linkShares,reshare:e.reshare,shares:e.shares,placeholder:e.internalShareInputPlaceholder},on:{"open-sharing-details":e.toggleShareDetailsView}}),e._v(" "),e.loading?e._e():t("SharingList",{ref:"shareList",attrs:{shares:e.shares,"file-info":e.fileInfo},on:{"open-sharing-details":e.toggleShareDetailsView}}),e._v(" "),e.canReshare&&!e.loading?t("SharingInherited",{attrs:{"file-info":e.fileInfo}}):e._e(),e._v(" "),t("SharingEntryInternal",{attrs:{"file-info":e.fileInfo}})],1),e._v(" "),e.config.showExternalSharing?t("section",[t("div",{staticClass:"section-header"},[t("h4",[e._v(e._s(e.t("files_sharing","External shares")))]),e._v(" "),t("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:e._u([{key:"trigger",fn:function(){return[t("NcButton",{staticClass:"hint-icon",attrs:{variant:"tertiary-no-background","aria-label":e.t("files_sharing","External shares explanation")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("InfoIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,915383693)})]},proxy:!0}],null,!1,4045083138)},[e._v(" "),t("p",{staticClass:"hint-body"},[e._v("\n\t\t\t\t\t\t"+e._s(e.externalSharesHelpText)+"\n\t\t\t\t\t")])])],1),e._v(" "),e.loading?e._e():t("SharingInput",{attrs:{"can-reshare":e.canReshare,"file-info":e.fileInfo,"link-shares":e.linkShares,"is-external":!0,placeholder:e.externalShareInputPlaceholder,reshare:e.reshare,shares:e.shares},on:{"open-sharing-details":e.toggleShareDetailsView}}),e._v(" "),e.loading?e._e():t("SharingList",{attrs:{shares:e.externalShares,"file-info":e.fileInfo},on:{"open-sharing-details":e.toggleShareDetailsView}}),e._v(" "),!e.loading&&e.isLinkSharingAllowed?t("SharingLinkList",{ref:"linkShareList",attrs:{"can-reshare":e.canReshare,"file-info":e.fileInfo,shares:e.linkShares},on:{"open-sharing-details":e.toggleShareDetailsView}}):e._e()],1):e._e(),e._v(" "),e.hasExternalSections&&!e.showSharingDetailsView?t("section",[t("div",{staticClass:"section-header"},[t("h4",[e._v(e._s(e.t("files_sharing","Additional shares")))]),e._v(" "),t("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:e._u([{key:"trigger",fn:function(){return[t("NcButton",{staticClass:"hint-icon",attrs:{variant:"tertiary-no-background","aria-label":e.t("files_sharing","Additional shares explanation")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("InfoIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,915383693)})]},proxy:!0}],null,!1,880248230)},[e._v(" "),t("p",{staticClass:"hint-body"},[e._v("\n\t\t\t\t\t\t"+e._s(e.additionalSharesHelpText)+"\n\t\t\t\t\t")])])],1),e._v(" "),e._l(e.sortedExternalSections,function(i){return t("SidebarTabExternalSection",{key:i.id,staticClass:"sharingTab__additionalContent",attrs:{section:i,node:e.fileInfo.node}})}),e._v(" "),e._l(e.legacySections,function(i,s){return t("SidebarTabExternalSectionLegacy",{key:s,staticClass:"sharingTab__additionalContent",attrs:{"file-info":e.fileInfo,"section-callback":i}})}),e._v(" "),e.projectsEnabled?t("div",{directives:[{name:"show",rawName:"v-show",value:!e.showSharingDetailsView&&e.fileInfo,expression:"!showSharingDetailsView && fileInfo"}],staticClass:"sharingTab__additionalContent"},[t("NcCollectionList",{attrs:{id:`${e.fileInfo.id}`,type:"file",name:e.fileInfo.name}})],1):e._e()],2):e._e()]),e._v(" "),e.showSharingDetailsView?t("SharingDetailsTab",{attrs:{"file-info":e.shareDetailsData.fileInfo,share:e.shareDetailsData.share},on:{"close-sharing-details":e.toggleShareDetailsView,"add:share":e.addShare,"remove:share":e.removeShare}}):e._e()],1)},[],!1,null,"7cacff60",null).exports,Ei=(0,a.pM)({__name:"FilesSidebarTab",props:{node:null,active:{type:Boolean},folder:null,view:null},setup(e){const t=e,i=(0,a.EW)(()=>t.node&&function(e){const t={id:e.fileid,path:e.dirname,name:e.basename,mtime:e.mtime?.getTime(),etag:e.attributes.etag,size:e.size,hasPreview:e.attributes.hasPreview,isEncrypted:1===e.attributes.isEncrypted,isFavourited:1===e.attributes.favorite,mimetype:e.mime,permissions:e.permissions,mountType:e.attributes["mount-type"],sharePermissions:e.attributes["share-permissions"],shareAttributes:JSON.parse(e.attributes["share-attributes"]||"[]"),type:"file"===e.type?"file":"dir",attributes:e.attributes},i=new OC.Files.FileInfo(t);return i.get=e=>i[e],i.isDirectory=()=>"httpd/unix-directory"===i.mimetype,i.canEdit=()=>Boolean(i.permissions&OC.PERMISSION_UPDATE),i.node=e,i}(t.node));return{__sfc:!0,props:t,fileInfo:i,SharingTab:ki}}}),Di=(0,v.A)(Ei,function(){var e=this,t=e._self._c,i=e._self._setupProxy;return i.fileInfo?t(i.SharingTab,{attrs:{"file-info":i.fileInfo}}):e._e()},[],!1,null,null,null).exports},48318(){!function(e){"use strict";var t,i=function(){try{if(e.URLSearchParams&&"bar"===new e.URLSearchParams("foo=bar").get("foo"))return e.URLSearchParams}catch(e){}return null}(),s=i&&"a=1"===new i({a:1}).toString(),a=i&&"+"===new i("s=%2B").get("s"),n=i&&"size"in i.prototype,r="__URLSearchParams__",o=!i||((t=new i).append("s"," &"),"s=+%26"===t.toString()),l=p.prototype,h=!(!e.Symbol||!e.Symbol.iterator);if(!(i&&s&&a&&o&&n)){l.append=function(e,t){_(this[r],e,t)},l.delete=function(e){delete this[r][e]},l.get=function(e){var t=this[r];return this.has(e)?t[e][0]:null},l.getAll=function(e){var t=this[r];return this.has(e)?t[e].slice(0):[]},l.has=function(e){return w(this[r],e)},l.set=function(e,t){this[r][e]=[""+t]},l.toString=function(){var e,t,i,s,a=this[r],n=[];for(t in a)for(i=g(t),e=0,s=a[t];eo});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-731a9650]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-731a9650]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-731a9650]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-731a9650]{margin-inline-start:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r},70544(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,"\n.sharing-tab-external-section-legacy[data-v-3e4e67d2] {\n\twidth: 100%;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SidebarTabExternal/SidebarTabExternalSectionLegacy.vue"],names:[],mappings:";AAkCA;CACA,WAAA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ContentCopy.vue?vue&type=template&id=0e8bd3c4\"\nimport script from \"./ContentCopy.vue?vue&type=script&lang=js\"\nexport * from \"./ContentCopy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon content-copy-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=13d4a0bb&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13d4a0bb\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { generateUrl, getBaseUrl } from '@nextcloud/router';\n/**\n * @param fileid - The file ID to generate the direct file link for\n */\nexport function generateFileUrl(fileid) {\n const baseURL = getBaseUrl();\n const { globalscale } = getCapabilities();\n if (globalscale?.token) {\n return generateUrl('/gf/{token}/{fileid}', {\n token: globalscale.token,\n fileid,\n }, { baseURL });\n }\n return generateUrl('/f/{fileid}', {\n fileid,\n }, {\n baseURL,\n });\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=6c4cb23b&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c4cb23b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip},on:{\"click\":_vm.copyLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":_vm.shareInputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal\n\t\t\t? _vm.t('files_sharing', 'Enter external recipients')\n\t\t\t: _vm.t('files_sharing', 'Search for internal recipients'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":_vm.shareInputId,\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options,\"label-outside\":true},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.onSelected},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.placeholder)+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nexport const BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ,\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-CeyZUHai.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport logger from '../services/logger.ts';\nimport { isFileRequest } from '../services/SharingService.ts';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch {\n logger.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n *\n * @return date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n *\n * @param date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Password expiration time\n *\n * @return date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n *\n * @param passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n *\n * @return 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n /**\n * Is the share from a trusted server\n */\n get isTrustedServer() {\n return !!this._share.is_trusted_server;\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { File, Folder, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport logger from './logger.ts';\nconst headers = {\n 'Content-Type': 'application/json',\n};\n/**\n *\n * @param ocsEntry\n */\nasync function ocsEntryToNode(ocsEntry) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n const type = ocsEntry.type === 'dir' ? 'folder' : ocsEntry.type;\n ocsEntry.item_type = type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${getRemoteURL()}${getRootPath()}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: getRootPath(),\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n}\n/**\n *\n * @param shareWithMe\n */\nfunction getShares(shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getSharedWithYou() {\n return getShares(true);\n}\n/**\n *\n */\nfunction getSharedWithOthers() {\n return getShares();\n}\n/**\n *\n */\nfunction getRemoteShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getPendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getRemotePendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getDeletedShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n * Check if a file request is enabled\n *\n * @param attributes the share attributes json-encoded array\n */\nexport function isFileRequest(attributes = '[]') {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n}\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n *\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nfunction groupBy(nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n}\n/**\n *\n * @param sharedWithYou\n * @param sharedWithOthers\n * @param pendingShares\n * @param deletedshares\n * @param filterTypes\n */\nexport async function getContents(sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) {\n const promises = [];\n if (sharedWithYou) {\n promises.push(getSharedWithYou(), getRemoteShares());\n }\n if (sharedWithOthers) {\n promises.push(getSharedWithOthers());\n }\n if (pendingShares) {\n promises.push(getPendingShares(), getRemotePendingShares());\n }\n if (deletedshares) {\n promises.push(getDeletedShares());\n }\n const responses = await Promise.all(promises);\n const data = responses.map((response) => response.data.ocs.data).flat();\n let contents = (await Promise.all(data.map(ocsEntryToNode)))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map((node) => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${getRemoteURL()}${getRootPath()}`,\n owner: getCurrentUser()?.uid || null,\n root: getRootPath(),\n }),\n contents,\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is federation enabled ?\n */\n get isFederationEnabled() {\n return this._capabilities?.files_sharing?.federation?.outgoing === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the default days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n *\n * @return\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n /**\n * Show federated shares to trusted servers as internal shares\n *\n * @return\n */\n get showFederatedSharesToTrustedServersAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesToTrustedServersAsInternal', false);\n }\n /**\n * Show the external share ui\n */\n get showExternalSharing() {\n return loadState('files_sharing', 'showExternalSharing', true);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share = {}\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tconst handlerInput = {}\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\thandlerInput.suggestions = this.suggestions\n\t\t\t\t\thandlerInput.fileInfo = this.fileInfo\n\t\t\t\t\thandlerInput.query = this.query\n\t\t\t\t}\n\t\t\t\tconst externalShareRequestObject = await shareRequestObject.handler(handlerInput)\n\t\t\t\tshare = this.mapShareRequestToShareObject(externalShareRequestObject)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tif (this.fileInfo.type !== 'dir') {\n\t\t\t\tconst originalPermissions = share.permissions\n\t\t\t\tconst strippedPermissions = originalPermissions\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.CREATE\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.DELETE\n\n\t\t\t\tif (originalPermissions !== strippedPermissions) {\n\t\t\t\t\tlogger.debug('Removed create/delete permissions from file share (only valid for folders)')\n\t\t\t\t\tshare.permissions = strippedPermissions\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\thideDownload: false,\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions ?? new Config().defaultPermissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport Share from '../models/Share.ts'\nimport logger from '../services/logger.ts'\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the share automatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param {string} data.note custom note to recipient\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while creating share', { error })\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tshowError(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while deleting share', { error })\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error deleting the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while updating share', { error })\n\t\t\t\tif (error.response.status !== 400) {\n\t\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\t\terrorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error updating the share'),\n\t\t\t\t\t\t{ type: 'error' },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst message = error.response.data.ocs.meta.message\n\t\t\t\tthrow new Error(message)\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=b9057cce&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=b9057cce&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=b9057cce\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=b9057cce&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.section.element,{ref:\"sectionElement\",tag:\"component\",domProps:{\"node\":_vm.node}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalSection.vue?vue&type=template&id=9785f99e\"\nimport script from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"sharing-tab-external-section-legacy\"},[_c(_setup.component,{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=3e4e67d2&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=3e4e67d2&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SidebarTabExternalSectionLegacy.vue?vue&type=template&id=3e4e67d2&scoped=true\"\nimport script from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nimport style0 from \"./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=3e4e67d2&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e4e67d2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"read-only\",\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"upload-edit\",\"value\":_vm.allPermissions,\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-sharing-share-permissions-bundle\":\"file-drop\",\"button-variant\":true,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File request'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"custom\",\"value\":\"custom\",\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.expandCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"id\":\"advancedSectionAccordionAdvancedControl\",\"variant\":\"tertiary\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{staticClass:\"sharingTabDetailsView__label\",attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share label')},model:{value:(_vm.share.label),callback:function ($$v) {_vm.$set(_vm.share, \"label\", $$v)},expression:\"share.label\"}}):_vm._e(),_vm._v(\" \"),(_vm.config.allowCustomTokens && _vm.isPublicShare && !_vm.isNewShare)?_c('NcInputField',{attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share link token'),\"helper-text\":_vm.t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.'),\"show-trailing-button\":\"\",\"trailing-button-label\":_vm.loadingToken ? _vm.t('files_sharing', 'Generating…') : _vm.t('files_sharing', 'Generate new token')},on:{\"trailing-button-click\":_vm.generateNewToken},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.loadingToken)?_c('NcLoadingIcon'):_c('Refresh',{attrs:{\"size\":20}})]},proxy:true}],null,false,4228062821),model:{value:(_vm.share.token),callback:function ($$v) {_vm.$set(_vm.share, \"token\", $$v)},expression:\"share.token\"}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isPasswordEnforced},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcPasswordField',{attrs:{\"autocomplete\":\"new-password\",\"model-value\":_vm.share.newPassword ?? '',\"error\":_vm.passwordError,\"helper-text\":_vm.errorPasswordLabel || _vm.passwordHint,\"required\":_vm.isPasswordEnforced && _vm.isNewShare,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{on:{\"update:modelValue\":_vm.onPasswordProtectedByTalkChange},model:{value:(_vm.isPasswordProtectedByTalk),callback:function ($$v) {_vm.isPasswordProtectedByTalk=$$v},expression:\"isPasswordProtectedByTalk\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isExpiryDateEnforced},model:{value:(_vm.hasExpirationDate),callback:function ($$v) {_vm.hasExpirationDate=$$v},expression:\"hasExpirationDate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"share-date-picker\",\"model-value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":\"\",\"label\":_vm.t('files_sharing', 'Expiration date'),\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"input\":_vm.onExpirationChange}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload},on:{\"update:modelValue\":function($event){return _vm.queueUpdate('hideDownload')}},model:{value:(_vm.share.hideDownload),callback:function ($$v) {_vm.$set(_vm.share, \"hideDownload\", $$v)},expression:\"share.hideDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},model:{value:(_vm.canDownload),callback:function ($$v) {_vm.canDownload=$$v},expression:\"canDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download and sync'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.writeNoteToRecipientIsChecked),callback:function ($$v) {_vm.writeNoteToRecipientIsChecked=$$v},expression:\"writeNoteToRecipientIsChecked\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('NcTextArea',{attrs:{\"label\":_vm.t('files_sharing', 'Note to recipient'),\"placeholder\":_vm.t('files_sharing', 'Enter a note for the share recipient')},model:{value:(_vm.share.note),callback:function ($$v) {_vm.$set(_vm.share, \"note\", $$v)},expression:\"share.note\"}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.showInGridView),callback:function ($$v) {_vm.showInGridView=$$v},expression:\"showInGridView\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Show files in grid view'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('SidebarTabExternalAction',{key:action.id,ref:\"externalShareActions\",refInFor:true,attrs:{\"action\":action,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.setCustomPermissions),callback:function ($$v) {_vm.setCustomPermissions=$$v},expression:\"setCustomPermissions\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canRemoveReadPermission,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},model:{value:(_vm.hasRead),callback:function ($$v) {_vm.hasRead=$$v},expression:\"hasRead\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},model:{value:(_vm.canCreate),callback:function ($$v) {_vm.canCreate=$$v},expression:\"canCreate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},model:{value:(_vm.canEdit),callback:function ($$v) {_vm.canEdit=$$v},expression:\"canEdit\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.resharingIsPossible)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},model:{value:(_vm.canReshare),callback:function ($$v) {_vm.canReshare=$$v},expression:\"canReshare\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},model:{value:(_vm.canDelete),callback:function ($$v) {_vm.canDelete=$$v},expression:\"canDelete\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{attrs:{\"data-cy-files-sharing-share-editor-action\":\"cancel\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"variant\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\",\"disabled\":_vm.creating},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=5b2fe1de\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=fa2b1464\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-group-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=7dd7f6aa\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=4ae2345c\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=0e958886\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./TrayArrowUp.vue?vue&type=template&id=ae55bf4e\"\nimport script from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tray-arrow-up-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.action.element,{key:_vm.action.id,ref:\"actionElement\",tag:\"component\",domProps:{\"share\":_vm.share,\"node\":_vm.node,\"onSave\":_setup.onSave}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalAction.vue?vue&type=template&id=5ea2e6c7\"\nimport script from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SidebarTabExternalActionLegacy.vue?vue&type=template&id=50e2cb04\"\nimport script from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\nexport * from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.data.is,_vm._g(_vm._b({tag:\"component\"},'component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\n/**\n * Fetches a node from the given path\n *\n * @param path - The path to fetch the node from\n */\nexport async function fetchNode(path) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Config from '../services/ConfigService.ts';\nimport logger from '../services/logger.ts';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate);\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n logger.info('Error generating password from password_policy', { error });\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n/**\n * Fills the given array with cryptographically secure random values.\n * If the crypto API is not available, it falls back to less secure Math.random().\n * Crypto API is available in modern browsers on secure contexts (HTTPS).\n *\n * @param array - The array to fill with random values.\n */\nfunction getRandomValues(array) {\n if (self?.crypto?.getRandomValues) {\n self.crypto.getRandomValues(array);\n return;\n }\n let len = array.length;\n while (len--) {\n array[len] = Math.floor(Math.random() * 256);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { ShareType } from '@nextcloud/sharing'\nimport debounce from 'debounce'\nimport PQueue from 'p-queue'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\nimport {\n\tATOMIC_PERMISSIONS,\n\tBUNDLED_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport SharesRequests from './ShareRequests.js'\n\nexport default {\n\tmixins: [SharesRequests],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tnode: null,\n\t\t\tShareType,\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t/** @type {boolean | undefined} */\n\t\t\tpasswordProtectedState: undefined,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpath() {\n\t\t\treturn (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t},\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by Nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by Nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn !this.share.id\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t\treturn this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\tconst bundledPermissions = [\n\t\t\t\tBUNDLED_PERMISSIONS.ALL,\n\t\t\t\tBUNDLED_PERMISSIONS.ALL_FILE,\n\t\t\t\tBUNDLED_PERMISSIONS.READ_ONLY,\n\t\t\t\tBUNDLED_PERMISSIONS.FILE_DROP,\n\t\t\t]\n\t\t\tconst permissionsWithoutShare = this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE\n\t\t\treturn !bundledPermissions.includes(permissionsWithoutShare)\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.defaultExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\tif (this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (this.passwordProtectedState !== undefined) {\n\t\t\t\t\treturn this.passwordProtectedState\n\t\t\t\t}\n\t\t\t\treturn typeof this.share.newPassword === 'string'\n\t\t\t\t\t|| typeof this.share.password === 'string'\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.passwordProtectedState = true\n\t\t\t\t\tthis.$set(this.share, 'newPassword', await GeneratePassword(true))\n\t\t\t\t} else {\n\t\t\t\t\tthis.passwordProtectedState = false\n\t\t\t\t\tthis.$set(this.share, 'newPassword', '')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Fetch WebDAV node\n\t\t *\n\t\t * @return {Node}\n\t\t */\n\t\tasync getNode() {\n\t\t\tconst node = { path: this.path }\n\t\t\ttry {\n\t\t\t\tthis.node = await fetchNode(node.path)\n\t\t\t\tlogger.info('Fetched node:', { node: this.node })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error:', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.newPassword) {\n\t\t\t\tif (typeof share.newPassword !== 'string') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date the date to format\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.share.expireDate = null\n\t\t\t\tthis.$set(this.share, 'expireDate', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parsedDate = (date instanceof Date) ? date : new Date(date)\n\t\t\tthis.share.expireDate = this.formatDateToString(parsedDate)\n\t\t},\n\n\t\t/**\n\t\t * Note changed, let's save it to a different key\n\t\t *\n\t\t * @param {string} note the share note\n\t\t */\n\t\tonNoteChange(note) {\n\t\t\tthis.$set(this.share, 'newNote', note.trim())\n\t\t},\n\n\t\t/**\n\t\t * When the note change, we trim, save and dispatch\n\t\t *\n\t\t */\n\t\tonNoteSubmit() {\n\t\t\tif (this.share.newNote) {\n\t\t\t\tthis.share.note = this.share.newNote\n\t\t\t\tthis.$delete(this.share, 'newNote')\n\t\t\t\tthis.queueUpdate('note')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tlogger.debug('Share deleted', { shareId: this.share.id })\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\t\t\t} catch {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tfor (const name of propertyNames) {\n\t\t\t\t\tif (name === 'password') {\n\t\t\t\t\t\tif (this.share.newPassword !== undefined) {\n\t\t\t\t\t\t\tproperties[name] = this.share.newPassword\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.share[name] === null || this.share[name] === undefined) {\n\t\t\t\t\t\tproperties[name] = ''\n\t\t\t\t\t} else if ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.includes('password')) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.share.password = this.share.newPassword || undefined\n\t\t\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\tthis.$delete(this.errors, property)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowSuccess(this.updateSuccessMessage(propertyNames))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.error('Could not update share', { error, share: this.share, propertyNames })\n\n\t\t\t\t\t\tconst { message } = error\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\t\tthis.onSyncError(property, message)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowError(message)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We do not have information what happened, but we should still inform the user\n\t\t\t\t\t\t\tshowError(t('files_sharing', 'Could not update share'))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tlogger.debug('Updated local share', { share: this.share })\n\t\t},\n\n\t\t/**\n\t\t * @param {string[]} names Properties changed\n\t\t */\n\t\tupdateSuccessMessage(names) {\n\t\t\tif (names.length !== 1) {\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\n\t\t\tswitch (names[0]) {\n\t\t\t\tcase 'expireDate':\n\t\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\t\tcase 'hideDownload':\n\t\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\t\tcase 'label':\n\t\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\t\tcase 'note':\n\t\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\t\tcase 'password':\n\t\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\t\tcase 'permissions':\n\t\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\t\tdefault:\n\t\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\tif (property === 'password' && this.share.newPassword !== undefined) {\n\t\t\t\tif (this.share.newPassword === this.share.password) {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t}\n\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t}\n\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\t\tcase 'password':\n\t\t\t\tcase 'pending':\n\t\t\t\tcase 'expireDate':\n\t\t\t\tcase 'label':\n\t\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\t\tif (propertyEl) {\n\t\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\t// Restore previous state\n\t\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport isSvg from 'is-svg';\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (!action.element || !action.element.startsWith('oca_') || !window.customElements.get(action.element)) {\n throw new Error('Sidebar actions must provide a registered custom web component identifier');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the order property');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_actions.set(action.id, action);\n}\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarInlineAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the \"order\" property');\n }\n if (typeof action.iconSvg !== 'string' || !isSvg(action.iconSvg)) {\n throw new Error('Sidebar actions must have the \"iconSvg\" property');\n }\n if (typeof action.label !== 'function') {\n throw new Error('Sidebar actions must implement the \"label\" method');\n }\n if (typeof action.exec !== 'function') {\n throw new Error('Sidebar actions must implement the \"exec\" method');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_inline_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_inline_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_inline_actions.set(action.id, action);\n}\n/**\n * Get all registered sidebar actions\n */\nexport function getSidebarActions() {\n return [...(window._nc_files_sharing_sidebar_actions?.values() ?? [])];\n}\n/**\n * Get all registered sidebar inline actions\n */\nexport function getSidebarInlineActions() {\n return [...(window._nc_files_sharing_sidebar_inline_actions?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\n/**\n *\n */\nexport async function generateToken() {\n const { data } = await axios.get(generateOcsUrl('/apps/files_sharing/api/v1/token'));\n return data.ocs.data.token;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=34db2cbd&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=34db2cbd&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=34db2cbd&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=34db2cbd&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34db2cbd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=731a9650&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"731a9650\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', { folder: _vm.viaFolderName }))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=cedf3238&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cedf3238\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Link shares')}},[(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e(),_vm._v(\" \"),(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlankOutline.vue?vue&type=template&id=784b59e6\"\nimport script from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=5603f41f\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-bold-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=03239926\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon exclamation-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./LockOutline.vue?vue&type=template&id=54353a96\"\nimport script from \"./LockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./LockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=aba87788\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=18d04e6a\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share-expiry-time\"},[_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.expiryTime)?_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('files_sharing', 'Share expiration: {date}', { date: new Date(_vm.expiryTime).toLocaleString() })},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ClockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3754271979)}):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_c('h3',{staticClass:\"hint-heading\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share Expiration'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expiryTime)?_c('p',{staticClass:\"hint-body\"},[_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime,\"format\":_vm.timeFormat,\"relative-time\":false}}),_vm._v(\" (\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime}}),_vm._v(\")\\n\\t\\t\")],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ClockOutline.vue?vue&type=template&id=1a84e403\"\nimport script from \"./ClockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ClockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ShareExpiryTime.vue?vue&type=template&id=c9199db0&scoped=true\"\nimport script from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nexport * from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nimport style0 from \"./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c9199db0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=e26de6f6\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","\n\n","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=1eed3dd9\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=11ecc4a6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=11ecc4a6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=11ecc4a6&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=11ecc4a6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11ecc4a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"quickShareActions\",staticClass:\"share-select\",attrs:{\"menu-name\":_vm.selectedOption,\"aria-label\":_vm.ariaLabel,\"variant\":\"tertiary-no-background\",\"disabled\":!_vm.share.canEdit,\"force-name\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DropdownIcon',{attrs:{\"size\":15}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.options),function(option){return _c('NcActionButton',{key:option.label,attrs:{\"type\":\"radio\",\"model-value\":option.label === _vm.selectedOption,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.selectOption(option.label)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(option.icon,{tag:\"component\"})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(option.label)+\"\\n\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=4ca4172c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=4ca4172c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=4ca4172c&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=4ca4172c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ca4172c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined)?_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__actions\"},[(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkLabel,\"title\":_vm.copySuccess ? _vm.t('files_sharing', 'Successfully copied public link') : undefined,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{staticClass:\"sharing-entry__copy-icon\",class:{ 'sharing-entry__copy-icon--success': _vm.copySuccess },attrs:{\"path\":_vm.copySuccess ? _vm.mdiCheck : _vm.mdiContentCopy}})]},proxy:true}],null,false,1728815133)})],1):_vm._e()],1)],1)]),_vm._v(\" \"),(!_vm.pending && _vm.pendingDataIsMissing)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onCancel}},[(_vm.errors.pending)?_c('NcActionText',{staticClass:\"error\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ErrorIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1966124155)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"uncheck\":_vm.onPasswordDisable},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.enforcePasswordForPublicLink ? _vm.t('files_sharing', 'Password protection (enforced)') : _vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.isPasswordProtected)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\"autocomplete\":\"new-password\"},on:{\"submit\":function($event){return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2056568168),model:{value:(_vm.share.newPassword),callback:function ($$v) {_vm.$set(_vm.share, \"newPassword\", $$v)},expression:\"share.newPassword\"}}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:model-value\":_vm.onExpirationDateToggleUpdate},model:{value:(_vm.defaultExpirationDateEnabled),callback:function ($$v) {_vm.defaultExpirationDateEnabled=$$v},expression:\"defaultExpirationDateEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.isDefaultExpireDateEnforced ? _vm.t('files_sharing', 'Enable link expiration (enforced)') : _vm.t('files_sharing', 'Enable link expiration'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),((_vm.pendingDefaultExpirationDate || _vm.pendingEnforcedExpirationDate) && _vm.defaultExpirationDateEnabled)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"data-cy-files-sharing-expiration-date-input\":\"\",\"label\":_vm.pendingEnforcedExpirationDate ? _vm.t('files_sharing', 'Enter expiration date (enforced)') : _vm.t('files_sharing', 'Enter expiration date'),\"disabled\":_vm.saving,\"is-native-picker\":true,\"hide-label\":true,\"model-value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.expirationDateChanged},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"disabled\":_vm.pendingEnforcedPassword && !_vm.share.newPassword},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CheckIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2630571749)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onMenuClose}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();_vm.showQRCode = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQr',{attrs:{\"size\":20}})]},proxy:true}],null,false,1082198240)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Generate QR code'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('NcActionButton',{key:action.id,on:{\"click\":function($event){return action.exec(_vm.share, _vm.fileInfo.node)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvg}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.label(_vm.share, _vm.fileInfo.node))+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('NcLoadingIcon',{staticClass:\"sharing-entry__loading\"}),_vm._v(\" \"),(_vm.showQRCode)?_c('NcDialog',{attrs:{\"size\":\"normal\",\"open\":_vm.showQRCode,\"name\":_vm.title,\"close-on-click-outside\":true},on:{\"update:open\":function($event){_vm.showQRCode=$event},\"close\":function($event){_vm.showQRCode = false}}},[_c('div',{staticClass:\"qr-code-dialog\"},[_c('VueQrcode',{staticClass:\"qr-code-dialog__img\",attrs:{\"tag\":\"img\",\"value\":_vm.shareLink}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=708b3104\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=469e5e80&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=469e5e80&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=469e5e80&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=469e5e80&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"469e5e80\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t(\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),(_vm.share.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1700783217)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=7e1141c6\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"sharing-sharee-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Shares')}},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/**\n * Register a new sidebar section inside the files sharing sidebar tab.\n *\n * @param section - The section to register\n */\nexport function registerSidebarSection(section) {\n if (!section.id) {\n throw new Error('Sidebar sections must have an id');\n }\n if (!section.element || !section.element.startsWith('oca_') || !window.customElements.get(section.element)) {\n throw new Error('Sidebar sections must provide a registered custom web component identifier');\n }\n if (typeof section.order !== 'number') {\n throw new Error('Sidebar sections must have the order property');\n }\n if (typeof section.enabled !== 'function') {\n throw new Error('Sidebar sections must implement the enabled method');\n }\n window._nc_files_sharing_sidebar_sections ??= new Map();\n if (window._nc_files_sharing_sidebar_sections.has(section.id)) {\n throw new Error(`Sidebar section with id \"${section.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_sections.set(section.id, section);\n}\n/**\n * Get all registered sidebar sections for the files sharing sidebar tab.\n */\nexport function getSidebarSections() {\n return [...(window._nc_files_sharing_sidebar_sections?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ShareType } from '@nextcloud/sharing'\n\n/**\n *\n * @param share\n */\nfunction shareWithTitle(share) {\n\tif (share.type === ShareType.Group) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Team) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Room) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=7cacff60&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=7cacff60&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=7cacff60&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=7cacff60&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cacff60\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.hasExternalSections }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView),expression:\"!showSharingDetailsView\"}],staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('ul',[_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Internal shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.internalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.internalShareInputPlaceholder},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),(_vm.config.showExternalSharing)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'External shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,4045083138)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.externalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.externalShareInputPlaceholder,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{attrs:{\"shares\":_vm.externalShares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading && _vm.isLinkSharingAllowed)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasExternalSections && !_vm.showSharingDetailsView)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Additional shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Additional shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,880248230)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.additionalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_vm._l((_vm.sortedExternalSections),function(section){return _c('SidebarTabExternalSection',{key:section.id,staticClass:\"sharingTab__additionalContent\",attrs:{\"section\":section,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */}})}),_vm._v(\" \"),_vm._l((_vm.legacySections),function(section,index){return _c('SidebarTabExternalSectionLegacy',{key:index,staticClass:\"sharingTab__additionalContent\",attrs:{\"file-info\":_vm.fileInfo,\"section-callback\":section}})}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('NcCollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"","/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Convert Node to legacy file info\n *\n * @param node - The Node to convert\n */\nexport default function (node) {\n const rawFileInfo = {\n id: node.fileid,\n path: node.dirname,\n name: node.basename,\n mtime: node.mtime?.getTime(),\n etag: node.attributes.etag,\n size: node.size,\n hasPreview: node.attributes.hasPreview,\n isEncrypted: node.attributes.isEncrypted === 1,\n isFavourited: node.attributes.favorite === 1,\n mimetype: node.mime,\n permissions: node.permissions,\n mountType: node.attributes['mount-type'],\n sharePermissions: node.attributes['share-permissions'],\n shareAttributes: JSON.parse(node.attributes['share-attributes'] || '[]'),\n type: node.type === 'file' ? 'file' : 'dir',\n attributes: node.attributes,\n };\n const fileInfo = new OC.Files.FileInfo(rawFileInfo);\n // TODO remove when no more legacy backbone is used\n fileInfo.get = (key) => fileInfo[key];\n fileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory';\n fileInfo.canEdit = () => Boolean(fileInfo.permissions & OC.PERMISSION_UPDATE);\n fileInfo.node = node;\n return fileInfo;\n}\n","import { render, staticRenderFns } from \"./FilesSidebarTab.vue?vue&type=template&id=8a2257be\"\nimport script from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-731a9650]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-731a9650]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-731a9650]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-731a9650]{margin-inline-start:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__desc {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-inline-start: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.sharing-tab-external-section-legacy[data-v-3e4e67d2] {\n\twidth: 100%;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SidebarTabExternal/SidebarTabExternalSectionLegacy.vue\"],\"names\":[],\"mappings\":\";AAkCA;CACA,WAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingInput.vue\"],\"names\":[],\"mappings\":\"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA\",\"sourcesContent\":[\"\\n.sharing-search {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 4px;\\n\\n\\tlabel[for=\\\"sharing-search-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__input {\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 10px 0;\\n\\t}\\n}\\n\\n.vs__dropdown-menu {\\n\\t// properly style the lookup entry\\n\\tspan[lookup] {\\n\\t\\t.avatardiv {\\n\\t\\t\\tbackground-image: var(--icon-search-white);\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-color: var(--color-text-maxcontrast) !important;\\n\\t\\t\\t.avatardiv__initials-wrapper {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharingTabDetailsView[data-v-34db2cbd]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-34db2cbd]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-34db2cbd]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-34db2cbd]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-34db2cbd]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-34db2cbd]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-34db2cbd]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-34db2cbd]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-34db2cbd]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-34db2cbd],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-34db2cbd]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-34db2cbd] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-34db2cbd]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-34db2cbd]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-34db2cbd]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-34db2cbd]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-34db2cbd]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-34db2cbd]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-34db2cbd]:first-child{margin-inline-start:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA\",\"sourcesContent\":[\"\\n.sharingTabDetailsView {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tmargin: 0 auto;\\n\\tposition: relative;\\n\\theight: 100%;\\n\\toverflow: hidden;\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0.2em;\\n\\n\\t\\tspan {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\th1 {\\n\\t\\t\\t\\tfont-size: 15px;\\n\\t\\t\\t\\tpadding-inline-start: 0.3em;\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tposition: relative;\\n\\t\\toverflow: scroll;\\n\\t\\tflex-shrink: 1;\\n\\t\\tpadding: 4px;\\n\\t\\tpadding-inline-end: 12px;\\n\\t}\\n\\n\\t&__quick-permissions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 0 auto;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\tdiv {\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\tspan:nth-child(1) {\\n\\t\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\t\\tpadding: 0.1em;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t:deep(label span) {\\n\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\\n\\t\\t\\t\\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\\n\\t\\t\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t\\t\\t.subline {\\n\\t\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\t\\tflex-basis: 100%;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced-control {\\n\\t\\twidth: 100%;\\n\\n\\t\\tbutton {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\ttext-align: start;\\n\\t\\tpadding-inline-start: 0;\\n\\n\\t\\tsection {\\n\\n\\t\\t\\ttextarea,\\n\\t\\t\\tdiv.mx-datepicker {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\ttextarea {\\n\\t\\t\\t\\theight: 80px;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/*\\n\\t\\t\\t The following style is applied out of the component's scope\\n\\t\\t\\t to remove padding from the label.checkbox-radio-switch__label,\\n\\t\\t\\t which is used to group radio checkbox items. The use of ::v-deep\\n\\t\\t\\t ensures that the padding is modified without being affected by\\n\\t\\t\\t the component's scoping.\\n\\t\\t\\t Without this achieving left alignment for the checkboxes would not\\n\\t\\t\\t be possible.\\n\\t\\t\\t*/\\n\\t\\t\\tspan :deep(label) {\\n\\t\\t\\t\\tpadding-inline-start: 0 !important;\\n\\t\\t\\t\\tbackground-color: initial !important;\\n\\t\\t\\t\\tborder: none !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\tsection.custom-permissions-group {\\n\\t\\t\\t\\tpadding-inline-start: 1.5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tpadding-block-end: 6px;\\n\\t}\\n\\n\\t&__delete {\\n\\t\\t> button:first-child {\\n\\t\\t\\tcolor: rgb(223, 7, 7);\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\talign-items: flex-start;\\n\\t\\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\\n\\n\\t\\t.button-group {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmargin-top: 16px;\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\tmargin-inline-start: 16px;\\n\\n\\t\\t\\t\\t&:first-child {\\n\\t\\t\\t\\t\\tmargin-inline-start: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__internal .avatar-external[data-v-6c4cb23b]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-6c4cb23b]{opacity:1;color:var(--color-border-success)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue\"],\"names\":[],\"mappings\":\"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.sharing-entry__internal {\\n\\t.avatar-external {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-border-success);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","components","NcActions","required","subtitle","isUnique","Boolean","ariaExpanded","computed","ariaExpandedValue","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_t","$slots","ref","generateFileUrl","fileid","baseURL","getBaseUrl","globalscale","getCapabilities","token","generateUrl","NcActionButton","SharingEntrySimple","CheckIcon","ClipboardIcon","fileInfo","Object","data","copied","copySuccess","internalLink","copyLinkTooltip","t","internalLinkSubtitle","methods","copyLink","navigator","clipboard","writeText","showSuccess","$refs","shareEntrySimple","actionsComponent","$el","focus","error","logger","setTimeout","scopedSlots","_u","key","fn","proxy","ATOMIC_PERMISSIONS","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","defaultDavProperties","defaultDavNamespaces","d","nc","oc","ocs","uid","defaultRootPath","defaultRemoteURL","url","replace","Share","constructor","ocsData","_defineProperty","parseInt","hide_download","mail_send","attributes","JSON","parse","warn","_share","state","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","note","label","mailSend","hideDownload","undefined","find","scope","value","attribute","password","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","path","itemType","item_type","mimetype","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","window","OC","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","stringify","enabled","setAttribute","attrUpdate","i","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","parent","storageId","storage_id","storage","itemSource","item_source","status","isTrustedServer","is_trusted_server","Config","_capabilities","defaultPermissions","files_sharing","default_permissions","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","defaultExpireDate","Date","setDate","getDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isFederationEnabled","federation","outgoing","isPublicShareAllowed","isMailShareAllowed","sharebymail","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","loadState","showFederatedSharesToTrustedServersAsInternal","showExternalSharing","openSharingDetails","shareRequestObject","share","handler","handlerInput","suggestions","query","externalShareRequestObject","mapShareRequestToShareObject","originalPermissions","strippedPermissions","debug","shareDetails","openShareDetailsForCustomSettings","setCustomPermissions","shareType","is_no_user","isNoUser","user","displayName","shareUrl","generateOcsUrl","createShare","publicUpload","request","axios","post","emit","errorMessage","response","meta","message","showError","deleteShare","delete","Notification","showTemporary","updateShare","properties","put","Error","NcSelect","mixins","ShareRequests","ShareDetails","shares","Array","linkShares","reshare","canReshare","isExternal","placeholder","setup","shareInputId","Math","random","toString","slice","loading","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","trim","length","noResultText","mounted","getRecommendations","onSelected","option","asyncFind","debounceGetSuggestions","getSuggestions","search","lookup","query_lookup_default","remoteTypes","ShareType","Remote","RemoteGroup","showFederatedAsInternal","shouldAddRemoteTypes","Email","User","Group","Team","Room","Guest","Deck","ScienceMesh","get","params","format","perPage","exact","rawExactSuggestions","values","flat","rawSuggestions","exactSuggestions","filterOutExistingShares","filter","result","filterByTrustedServer","map","formatForMultiselect","sort","a","b","lookupEntry","lookupEnabled","condition","allSuggestions","concat","nameCounts","reduce","item","desc","debounce","args","rawRecommendations","arr","elem","getCurrentUser","indexOf","sharesObj","obj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","extra","email","server","shareWithDescription","uuid","clear-search-on-blur","model","callback","$$v","expression","_defineComponent","__name","node","section","__props","sectionElement","watchEffect","__sfc","_setupProxy","element","tag","domProps","sectionCallback","Function","component","action","expose","save","actionElement","savingCallback","onSave","toRaw","_setup","is","_g","handlers","text","client","remoteURL","headers","setHeaders","requesttoken","patch","headers2","method","fetch","getClient","async","fetchNode","propfindPayload","_nc_dav_namespaces","keys","ns","join","_nc_dav_properties","prop","filesRoot","userId","permString","P","NONE","includes","READ","WRITE","CREATE","UPDATE","DELETE","SHARE","parsePermissions","mtime","lastmod","crtime","creationdate","nodeData","source","filename","isNaN","getTime","mime","displayname","getcontentlength","FAILED","root","hasPreview","resultToNode","stat","getRootPath","details","verbose","api","generate","info","array","Uint8Array","ratio","passwordSet","self","crypto","getRandomValues","len","floor","charAt","SharesRequests","errors","saving","open","passwordProtectedState","updateQueue","PQueue","concurrency","reactiveState","hasNote","set","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","isRemoteShare","isShareOwner","isExpiryDateEnforced","hasCustomPermissions","bundledPermissions","permissionsWithoutShare","maxExpirationDateEnforced","isPasswordProtected","newPassword","$set","GeneratePassword","getNode","checkShare","expirationDate","isValid","formatDateToString","UTC","getFullYear","getMonth","toISOString","split","onExpirationChange","parsedDate","onNoteChange","onNoteSubmit","newNote","$delete","queueUpdate","onDelete","shareId","propertyNames","add","updatedShare","property","updateSuccessMessage","onSyncError","names","propertyEl","focusable","querySelector","debounceQueueUpdate","NcAvatar","NcButton","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CloseIcon","CircleIcon","EditIcon","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuUpIcon","DotsHorizontalIcon","Refresh","SidebarTabExternalAction","SidebarTabExternalActionLegacy","SharesMixin","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","isFirstComponentLoad","test","creating","initialToken","loadingToken","externalShareActions","_nc_files_sharing_sidebar_actions","ExternalShareActions","allPermissions","checked","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canRemoveReadPermission","hasUnsavedPassword","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","isEmailShareType","canTogglePasswordProtectedByTalkAvailable","canChangeHideDownload","shareAttributes","shareAttribute","customPermissionsList","translatedPermissions","permission","hasPermissions","initialPermissionSet","permissionsToCheck","index","toLocaleLowerCase","getLanguage","advancedControlExpandedValue","errorPasswordLabel","passwordHint","sortedExternalShareActions","order","externalLegacyShareActions","actions","advanced","watch","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","fallback","generateNewToken","generateToken","cancel","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","addShare","Promise","allSettled","externalLinkActions","$children","at","resolve","removeShare","onPasswordChange","onPasswordProtectedByTalkChange","getShareTypeIcon","EmailIcon","_l","refInFor","preventDefault","apply","arguments","NcActionLink","NcActionText","viaFileTargetUrl","viaFolderName","basename","initiator","folder","SharingEntryInherited","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","findIndex","stopPropagation","NcPopover","NcDateTime","ClockIcon","expiryTime","timeFormat","dateStyle","timeStyle","toLocaleString","DropdownIcon","selectedOption","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","NcActionCheckbox","NcActionInput","NcActionSeparator","NcDialog","NcIconSvgWrapper","VueQrcode","Tune","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","PlusIcon","SharingEntryQuickShareSelect","ShareExpiryTime","mdiCheck","mdiContentCopy","shareCreationComplete","defaultExpirationDateEnabled","pending","_nc_files_sharing_sidebar_inline_actions","showQRCode","l10nOptions","escape","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","shareLink","actionsTooltip","copyLinkLabel","isPasswordPolicyEnabled","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","pushNewLinkShare","e","update","newShare","match","copyButton","prompt","onPasswordDisable","onPasswordSubmit","onMenuClose","onExpirationDateToggleUpdate","expirationDateChanged","event","target","onCancel","class","minLength","exec","iconSvg","SharingEntryLink","canLinkShare","hasLinkShares","hasShares","awaitForShare","$nextTick","showAsInternal","tooltip","hasStatus","isArray","SharingEntry","productName","theme","InfoIcon","NcCollectionList","SharingEntryInternal","SharingInherited","SharingInput","SharingLinkList","SharingList","SharingDetailsTab","SidebarTabExternalSection","SidebarTabExternalSectionLegacy","deleteEvent","expirationInterval","sharedWithMe","externalShares","legacySections","ShareTabSections","getSections","sections","_nc_files_sharing_sidebar_sections","projectsEnabled","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","hasExternalSections","sortedExternalSections","isSharedWithMe","isLinkSharingAllowed","capabilities","internalShareInputPlaceholder","externalShareInputPlaceholder","immediate","newValue","oldValue","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","orderBy","group","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","from","document","activeElement","classList","className","startsWith","menuId","closest","emptyContentWithSections","directives","rawName","active","view","rawFileInfo","dirname","etag","isEncrypted","isFavourited","favorite","mountType","Files","FileInfo","isDirectory","SharingTab","ampersandTest","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","isSupportSize","prototype","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","Symbol","iterator","appendTo","dict","has","getAll","hasOwnProperty","encode","propValue","useProxy","Proxy","construct","bind","defineProperty","USPProto","polyfill","toStringTag","forEach","thisArg","parseToDict","getOwnPropertyNames","call","k","j","items","makeIterator","entries","TypeError","prev","cur","str","encodeURIComponent","decode","decodeURIComponent","next","shift","done","pairs","val"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/1142-1142.js.map.license b/dist/1142-1142.js.map.license new file mode 120000 index 00000000000..2520e846de4 --- /dev/null +++ b/dist/1142-1142.js.map.license @@ -0,0 +1 @@ +1142-1142.js.license \ No newline at end of file diff --git a/dist/6692-6692.js b/dist/6692-6692.js new file mode 100644 index 00000000000..5321eb880e7 --- /dev/null +++ b/dist/6692-6692.js @@ -0,0 +1,2 @@ +"use strict";(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[6692],{25438(t,e,i){i.d(e,{A:()=>l});var a=i(71354),n=i.n(a),s=i(76314),r=i.n(s)()(n());r.push([t.id,".file-request-dialog__password-field[data-v-4f93c9b6]{display:flex;align-items:flex-start;gap:8px;margin-top:12px}.file-request-dialog__password-field>div[data-v-4f93c9b6]{margin:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogDatePassword.vue"],names:[],mappings:"AACA,sDACC,YAAA,CACA,sBAAA,CACA,OAAA,CAEA,eAAA,CACA,0DAEC,QAAA",sourcesContent:["\n.file-request-dialog__password-field {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 8px;\n\t// Compensate label gab with legend\n\tmargin-top: 12px;\n\t> div {\n\t\t// Force margin to 0 as we handle it above\n\t\tmargin: 0;\n\t}\n}\n"],sourceRoot:""}]);const l=r},27542(t,e,i){i.d(e,{A:()=>l});var a=i(71354),n=i.n(a),s=i(76314),r=i.n(s)()(n());r.push([t.id,".file-request-dialog{--margin: 18px}.file-request-dialog__header{margin:0 var(--margin)}.file-request-dialog__form{position:relative;overflow:auto;padding:var(--margin) var(--margin);margin-top:calc(-1*var(--margin))}.file-request-dialog fieldset{display:flex;flex-direction:column;width:100%;margin-top:var(--margin)}.file-request-dialog fieldset legend{display:flex;align-items:center;width:100%}.file-request-dialog__info{color:var(--color-text-maxcontrast);padding-block:4px;display:flex;align-items:center}.file-request-dialog__info .file-request-dialog__info-icon{margin-inline-end:8px}.file-request-dialog .dialog__actions{width:auto;margin-inline:12px}.file-request-dialog .dialog__actions span.dialog__actions-separator{margin-inline-start:auto}.file-request-dialog .input-field__helper-text-message{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/NewFileRequestDialog.vue"],names:[],mappings:"AACA,qBACC,cAAA,CAEA,6BACC,sBAAA,CAGD,2BACC,iBAAA,CACA,aAAA,CACA,mCAAA,CAEA,iCAAA,CAGD,8BACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,wBAAA,CAEA,qCACC,YAAA,CACA,kBAAA,CACA,UAAA,CAMF,2BACC,mCAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,2DACC,qBAAA,CAIF,sCACC,UAAA,CACA,kBAAA,CACA,qEACC,wBAAA,CAIF,uDAEC,mCAAA",sourcesContent:["\n.file-request-dialog {\n\t--margin: 18px;\n\n\t&__header {\n\t\tmargin: 0 var(--margin);\n\t}\n\n\t&__form {\n\t\tposition: relative;\n\t\toverflow: auto;\n\t\tpadding: var(--margin) var(--margin);\n\t\t// overlap header bottom padding\n\t\tmargin-top: calc(-1 * var(--margin));\n\t}\n\n\tfieldset {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t\tmargin-top: var(--margin);\n\n\t\tlegend {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t// Using a NcNoteCard was a bit much sometimes.\n\t// Using a simple paragraph instead does it.\n\t&__info {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: 4px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t.file-request-dialog__info-icon {\n\t\t\tmargin-inline-end: 8px;\n\t\t}\n\t}\n\n\t.dialog__actions {\n\t\twidth: auto;\n\t\tmargin-inline: 12px;\n\t\tspan.dialog__actions-separator {\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\t}\n\n\t.input-field__helper-text-message {\n\t\t// reduce helper text standing out\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const l=r},63141(t,e,i){i.d(e,{A:()=>l});var a=i(71354),n=i.n(a),s=i(76314),r=i.n(s)()(n());r.push([t.id,"\n.file-request-dialog__note[data-v-f8940020] textarea {\n\twidth: 100% !important;\n\tmin-height: 80px;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue"],names:[],mappings:";AAwKA;CACA,sBAAA;CACA,gBAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.input-field[data-v-99464cac],\n.file-request-dialog__emails[data-v-99464cac] {\n\tmargin-top: var(--margin);\n}\n.file-request-dialog__emails[data-v-99464cac] {\n\tdisplay: flex;\n\tgap: var(--default-grid-baseline);\n\tflex-wrap: wrap;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogFinish.vue\"],\"names\":[],\"mappings\":\";AAuOA;;CAEA,yBAAA;AACA;AAEA;CACA,aAAA;CACA,iCAAA;CACA,eAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{staticClass:\"file-request-dialog\",attrs:{\"data-cy-file-request-dialog\":\"\",\"close-on-click-outside\":false,\"name\":_vm.currentStep !== _vm.STEP.LAST ? _vm.t('files_sharing', 'Create a file request') : _vm.t('files_sharing', 'File request created'),\"size\":\"normal\"},on:{\"closing\":_vm.onCancel},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.SECOND),expression:\"currentStep === STEP.SECOND\"}],attrs:{\"aria-label\":_vm.t('files_sharing', 'Previous step'),\"disabled\":_vm.loading,\"data-cy-file-request-dialog-controls\":\"back\",\"variant\":\"tertiary\"},on:{\"click\":function($event){_vm.currentStep = _vm.STEP.FIRST}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Previous step'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"dialog__actions-separator\"}),_vm._v(\" \"),(_vm.currentStep !== _vm.STEP.LAST)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Cancel'),\"disabled\":_vm.loading,\"title\":_vm.t('files_sharing', 'Cancel the file request creation'),\"data-cy-file-request-dialog-controls\":\"cancel\",\"variant\":\"tertiary\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")]):(_vm.emails.length !== 0)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Close without sending emails'),\"disabled\":_vm.loading,\"title\":_vm.t('files_sharing', 'Close without sending emails'),\"data-cy-file-request-dialog-controls\":\"cancel\",\"variant\":\"tertiary\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Close'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.currentStep !== _vm.STEP.LAST)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Continue'),\"disabled\":_vm.loading,\"data-cy-file-request-dialog-controls\":\"next\"},on:{\"click\":_vm.onPageNext},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconNext',{attrs:{\"size\":20}})]},proxy:true}],null,false,3563923451)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Continue'))+\"\\n\\t\\t\")]):_c('NcButton',{attrs:{\"aria-label\":_vm.finishButtonLabel,\"disabled\":_vm.loading,\"data-cy-file-request-dialog-controls\":\"finish\",\"variant\":\"primary\"},on:{\"click\":_vm.onFinish},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconCheck',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.finishButtonLabel)+\"\\n\\t\\t\")])]},proxy:true}])},[_c('NcNoteCard',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.FIRST),expression:\"currentStep === STEP.FIRST\"}],staticClass:\"file-request-dialog__header\",attrs:{\"type\":\"info\"}},[_c('p',{staticClass:\"file-request-dialog__description\",attrs:{\"id\":\"file-request-dialog-description\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Collect files from others even if they do not have an account.'))+\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'To ensure you can receive files, verify you have enough storage available.'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('form',{ref:\"form\",staticClass:\"file-request-dialog__form\",attrs:{\"aria-describedby\":\"file-request-dialog-description\",\"aria-label\":_vm.t('files_sharing', 'File request'),\"aria-live\":\"polite\",\"data-cy-file-request-dialog-form\":\"\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('FileRequestIntro',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.FIRST),expression:\"currentStep === STEP.FIRST\"}],attrs:{\"context\":_vm.context,\"destination\":_vm.destination,\"disabled\":_vm.loading,\"label\":_vm.label,\"note\":_vm.note},on:{\"update:destination\":function($event){_vm.destination=$event},\"update:label\":function($event){_vm.label=$event},\"update:note\":function($event){_vm.note=$event}}}),_vm._v(\" \"),_c('FileRequestDatePassword',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.SECOND),expression:\"currentStep === STEP.SECOND\"}],attrs:{\"disabled\":_vm.loading,\"expiration-date\":_vm.expirationDate,\"password\":_vm.password},on:{\"update:expirationDate\":function($event){_vm.expirationDate=$event},\"update:expiration-date\":function($event){_vm.expirationDate=$event},\"update:password\":function($event){_vm.password=$event}}}),_vm._v(\" \"),(_vm.share)?_c('FileRequestFinish',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.LAST),expression:\"currentStep === STEP.LAST\"}],attrs:{\"emails\":_vm.emails,\"is-share-by-mail-enabled\":_vm.isShareByMailEnabled,\"share\":_vm.share},on:{\"add-email\":email => _vm.emails.push(email),\"remove-email\":_vm.onRemoveEmail}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AutoFix.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AutoFix.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AutoFix.vue?vue&type=template&id=3fb26506\"\nimport script from \"./AutoFix.vue?vue&type=script&lang=js\"\nexport * from \"./AutoFix.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon auto-fix-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7.5,5.6L5,7L6.4,4.5L5,2L7.5,3.4L10,2L8.6,4.5L10,7L7.5,5.6M19.5,15.4L22,14L20.6,16.5L22,19L19.5,17.6L17,19L18.4,16.5L17,14L19.5,15.4M22,2L20.6,4.5L22,7L19.5,5.6L17,7L18.4,4.5L17,2L19.5,3.4L22,2M13.34,12.78L15.78,10.34L13.66,8.22L11.22,10.66L13.34,12.78M14.37,7.29L16.71,9.63C17.1,10 17.1,10.65 16.71,11.04L5.04,22.71C4.65,23.1 4,23.1 3.63,22.71L1.29,20.37C0.9,20 0.9,19.35 1.29,18.96L12.96,7.29C13.35,6.9 14,6.9 14.37,7.29Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Information.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Information.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Information.vue?vue&type=template&id=08fbdef3\"\nimport script from \"./Information.vue?vue&type=script&lang=js\"\nexport * from \"./Information.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon information-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Config from '../services/ConfigService.ts';\nimport logger from '../services/logger.ts';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate);\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n logger.info('Error generating password from password_policy', { error });\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n/**\n * Fills the given array with cryptographically secure random values.\n * If the crypto API is not available, it falls back to less secure Math.random().\n * Crypto API is available in modern browsers on secure contexts (HTTPS).\n *\n * @param array - The array to fill with random values.\n */\nfunction getRandomValues(array) {\n if (self?.crypto?.getRandomValues) {\n self.crypto.getRandomValues(array);\n return;\n }\n let len = array.length;\n while (len--) {\n array[len] = Math.floor(Math.random() * 256);\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.passwordAndExpirationSummary)?_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.passwordAndExpirationSummary)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__expiration\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"expiration\"}},[_c('legend',[_vm._v(_vm._s(_vm.t('files_sharing', 'When should the request expire?')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isExpirationDateEnforced),expression:\"!isExpirationDateEnforced\"}],attrs:{\"model-value\":_vm.isExpirationDateEnforced || _vm.expirationDate !== null,\"disabled\":_vm.disabled || _vm.isExpirationDateEnforced},on:{\"update:modelValue\":_vm.onToggleDeadline}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set a submission expiration date'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expirationDate !== null)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"file-request-dialog-expirationDate\",\"disabled\":_vm.disabled,\"hide-label\":true,\"label\":_vm.t('files_sharing', 'Expiration date'),\"max\":_vm.maxDate,\"min\":_vm.minDate,\"placeholder\":_vm.t('files_sharing', 'Select a date'),\"required\":_vm.defaultExpireDateEnforced,\"model-value\":_vm.expirationDate,\"name\":\"expirationDate\",\"type\":\"date\"},on:{\"input\":function($event){return _vm.$emit('update:expirationDate', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.defaultExpireDateEnforced)?_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconInfo',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Your administrator has enforced a {count} days expiration policy.', { count: _vm.defaultExpireDate }))+\"\\n\\t\\t\")],1):_vm._e()],1),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__password\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"password\"}},[_c('legend',[_vm._v(_vm._s(_vm.t('files_sharing', 'What password should be used for the request?')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isPasswordEnforced),expression:\"!isPasswordEnforced\"}],attrs:{\"model-value\":_vm.isPasswordEnforced || _vm.password !== null,\"disabled\":_vm.disabled || _vm.isPasswordEnforced},on:{\"update:modelValue\":_vm.onTogglePassword}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set a password'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.password !== null)?_c('div',{staticClass:\"file-request-dialog__password-field\"},[_c('NcPasswordField',{ref:\"passwordField\",attrs:{\"check-password-strength\":true,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Password'),\"placeholder\":_vm.t('files_sharing', 'Enter a valid password'),\"required\":_vm.enforcePasswordForPublicLink,\"model-value\":_vm.password,\"name\":\"password\"},on:{\"update:value\":function($event){return _vm.$emit('update:password', $event)}}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Generate a new password'),\"title\":_vm.t('files_sharing', 'Generate a new password'),\"variant\":\"tertiary-no-background\"},on:{\"click\":_vm.onGeneratePassword},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPasswordGen',{attrs:{\"size\":20}})]},proxy:true}],null,false,1334968784)})],1):_vm._e(),_vm._v(\" \"),(_vm.enforcePasswordForPublicLink)?_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconInfo',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Your administrator has enforced a password protection.'))+\"\\n\\t\\t\")],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=style&index=0&id=4f93c9b6&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=style&index=0&id=4f93c9b6&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialogDatePassword.vue?vue&type=template&id=4f93c9b6&scoped=true\"\nimport script from \"./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialogDatePassword.vue?vue&type=style&index=0&id=4f93c9b6&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f93c9b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'You can now share the link below to allow people to upload files to your directory.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcInputField',{ref:\"clipboard\",attrs:{\"model-value\":_vm.shareLink,\"label\":_vm.t('files_sharing', 'Share link'),\"readonly\":true,\"show-trailing-button\":true,\"trailing-button-label\":_vm.t('files_sharing', 'Copy'),\"data-cy-file-request-dialog-fieldset\":\"link\"},on:{\"click\":_vm.copyShareLink,\"trailing-button-click\":_vm.copyShareLink},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.isCopied)?_c('IconCheck',{attrs:{\"size\":20}}):_c('IconClipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),(_vm.isShareByMailEnabled)?[_c('NcTextField',{attrs:{\"label\":_vm.t('files_sharing', 'Send link via email'),\"placeholder\":_vm.t('files_sharing', 'Enter an email address or paste a list'),\"data-cy-file-request-dialog-fieldset\":\"email\",\"type\":\"email\"},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.stopPropagation();return _vm.addNewEmail.apply(null, arguments)},\"paste\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onPasteEmails.apply(null, arguments)}},nativeOn:{\"focusout\":function($event){return _vm.addNewEmail.apply(null, arguments)}},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_vm._v(\" \"),(_vm.emails.length > 0)?_c('div',{staticClass:\"file-request-dialog__emails\"},_vm._l((_vm.emails),function(mail){return _c('NcChip',{key:mail,attrs:{\"aria-label-close\":_vm.t('files_sharing', 'Remove email'),\"text\":mail},on:{\"close\":function($event){return _vm.$emit('remove-email', mail)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"disable-tooltip\":\"\",\"display-name\":mail,\"is-no-user\":\"\",\"hide-status\":\"\",\"size\":24}})]},proxy:true}],null,true)})}),1):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClipboardText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClipboardText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ClipboardText.vue?vue&type=template&id=58267ecd\"\nimport script from \"./ClipboardText.vue?vue&type=script&lang=js\"\nexport * from \"./ClipboardText.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clipboard-text-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,9H7V7H17M17,13H7V11H17M14,17H7V15H14M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=style&index=0&id=99464cac&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=style&index=0&id=99464cac&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialogFinish.vue?vue&type=template&id=99464cac&scoped=true\"\nimport script from \"./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialogFinish.vue?vue&type=style&index=0&id=99464cac&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"99464cac\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('fieldset',{staticClass:\"file-request-dialog__label\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"label\"}},[_c('legend',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'What are you requesting?'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"model-value\":_vm.label,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Request subject'),\"placeholder\":_vm.t('files_sharing', 'Birthday party photos, History assignment…'),\"required\":false,\"name\":\"label\"},on:{\"update:value\":function($event){return _vm.$emit('update:label', $event)}}})],1),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__destination\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"destination\"}},[_c('legend',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Where should these files go?'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"model-value\":_vm.destination,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Upload destination'),\"minlength\":2/* cannot share root */,\"placeholder\":_vm.t('files_sharing', 'Select a destination'),\"readonly\":false /* cannot validate a readonly input */,\"required\":true /* cannot be empty */,\"show-trailing-button\":_vm.destination !== _vm.context.path,\"trailing-button-icon\":\"undo\",\"trailing-button-label\":_vm.t('files_sharing', 'Revert to default'),\"name\":\"destination\"},on:{\"click\":_vm.onPickDestination,\"keypress\":function($event){$event.preventDefault();$event.stopPropagation();/* prevent typing in the input, we use the picker */},\"paste\":function($event){$event.preventDefault();$event.stopPropagation();/* prevent pasting in the input, we use the picker */},\"trailing-button-click\":function($event){return _vm.$emit('update:destination', '')}}},[_c('IconFolder',{attrs:{\"size\":18}})],1),_vm._v(\" \"),_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconLock',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'The uploaded files are visible only to you unless you choose to share them.'))+\"\\n\\t\\t\")],1)],1),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__note\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"note\"}},[_c('legend',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add a note'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextArea',{attrs:{\"model-value\":_vm.note,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Note for recipient'),\"placeholder\":_vm.t('files_sharing', 'Add a note to help people understand what you are requesting.'),\"required\":false,\"name\":\"note\"},on:{\"update:value\":function($event){return _vm.$emit('update:note', $event)}}}),_vm._v(\" \"),_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconInfo',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'You can add links, date or any other information that will help the recipient understand what you are requesting.'))+\"\\n\\t\\t\")],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Lock.vue?vue&type=template&id=6d856da2\"\nimport script from \"./Lock.vue?vue&type=script&lang=js\"\nexport * from \"./Lock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=style&index=0&id=f8940020&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=style&index=0&id=f8940020&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialogIntro.vue?vue&type=template&id=f8940020&scoped=true\"\nimport script from \"./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialogIntro.vue?vue&type=style&index=0&id=f8940020&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f8940020\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport logger from '../services/logger.ts';\nimport { isFileRequest } from '../services/SharingService.ts';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch {\n logger.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n *\n * @return date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n *\n * @param date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Password expiration time\n *\n * @return date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n *\n * @param passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n *\n * @return 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n /**\n * Is the share from a trusted server\n */\n get isTrustedServer() {\n return !!this._share.is_trusted_server;\n }\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=style&index=0&id=747d2488&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=style&index=0&id=747d2488&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialog.vue?vue&type=template&id=747d2488\"\nimport script from \"./NewFileRequestDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialog.vue?vue&type=style&index=0&id=747d2488&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","config","Config","sharingConfig","defineComponent","components","IconInfo","IconPasswordGen","NcButton","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcNoteCard","NcPasswordField","disabled","Boolean","required","expirationDate","Date","password","setup","t","defaultExpireDate","defaultExpireDateEnabled","isDefaultExpireDateEnabled","defaultExpireDateEnforced","isDefaultExpireDateEnforced","enableLinkPasswordByDefault","enforcePasswordForPublicLink","data","maxDate","minDate","setDate","getDate","computed","passwordAndExpirationSummary","date","toLocaleDateString","isExpirationDateEnforced","isPasswordEnforced","mounted","defaultExpirationDate","generatePassword","methods","onToggleDeadline","checked","onTogglePassword","onGeneratePassword","showPassword","async","verbose","passwordPolicy","api","generate","request","axios","get","ocs","showSuccess","error","logger","info","showError","array","Uint8Array","ratio","passwordSet","self","crypto","getRandomValues","len","length","Math","floor","random","i","charAt","GeneratePassword","then","$refs","passwordField","isPasswordHidden","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","directives","rawName","value","expression","count","ref","scopedSlots","_u","key","fn","proxy","IconCheck","IconClipboard","NcAvatar","NcInputField","NcTextField","NcChip","share","Object","emails","Array","isShareByMailEnabled","n","isCopied","email","shareLink","generateUrl","token","baseURL","getBaseUrl","copyShareLink","event","navigator","clipboard","writeText","target","select","setTimeout","window","prompt","addNewEmail","e","trim","HTMLInputElement","setCustomValidity","checkValidity","reportValidity","includes","isValidEmail","onPasteEmails","clipboardData","getData","split","filter","map","duplicateEmails","validEmails","invalidEmails","forEach","join","indexOf","_k","keyCode","stopPropagation","apply","arguments","preventDefault","nativeOn","model","callback","$$v","_l","mail","IconFolder","IconLock","NcTextArea","context","label","destination","note","onPickDestination","filepicker","getFilePickerBuilder","addMimeTypeFilter","allowDirectories","addButton","onPickedDestination","setFilter","node","path","startAt","build","pick","nodes","STEP","Share","constructor","ocsData","parseInt","hide_download","mail_send","attributes","JSON","parse","warn","_share","state","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","mailSend","hideDownload","undefined","find","scope","attribute","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","itemType","item_type","mimetype","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","OC","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","stringify","enabled","setAttribute","attrUpdate","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","parent","storageId","storage_id","storage","itemSource","item_source","status","isTrustedServer","is_trusted_server","FileRequestDatePassword","FileRequestFinish","FileRequestIntro","IconNext","NcDialog","NcLoadingIcon","content","isMailShareAllowed","currentStep","FIRST","loading","finishButtonLabel","onPageNext","form","querySelectorAll","input","destinationInput","querySelector","createShare","SECOND","onRemoveEmail","index","onCancel","onFinish","setShareEmails","sendEmails","getFullYear","getMonth","toString","padStart","shareUrl","generateOcsUrl","post","shareType","ShareType","Email","Link","Permission","CREATE","emit","LAST","errorMessage","response","meta","message","Error","put","onEmailSendError"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/6692-6692.js.map.license b/dist/6692-6692.js.map.license new file mode 120000 index 00000000000..ceade4b0fae --- /dev/null +++ b/dist/6692-6692.js.map.license @@ -0,0 +1 @@ +6692-6692.js.license \ No newline at end of file diff --git a/dist/6784-6784.js b/dist/6784-6784.js deleted file mode 100644 index 2b695d3fc59..00000000000 --- a/dist/6784-6784.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[6784],{25438(t,e,i){i.d(e,{A:()=>l});var a=i(71354),n=i.n(a),s=i(76314),r=i.n(s)()(n());r.push([t.id,".file-request-dialog__password-field[data-v-4f93c9b6]{display:flex;align-items:flex-start;gap:8px;margin-top:12px}.file-request-dialog__password-field>div[data-v-4f93c9b6]{margin:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogDatePassword.vue"],names:[],mappings:"AACA,sDACC,YAAA,CACA,sBAAA,CACA,OAAA,CAEA,eAAA,CACA,0DAEC,QAAA",sourcesContent:["\n.file-request-dialog__password-field {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 8px;\n\t// Compensate label gab with legend\n\tmargin-top: 12px;\n\t> div {\n\t\t// Force margin to 0 as we handle it above\n\t\tmargin: 0;\n\t}\n}\n"],sourceRoot:""}]);const l=r},56231(t,e,i){i.d(e,{A:()=>l});var a=i(71354),n=i.n(a),s=i(76314),r=i.n(s)()(n());r.push([t.id,"\n.input-field[data-v-00d130ff],\n.file-request-dialog__emails[data-v-00d130ff] {\n\tmargin-top: var(--margin);\n}\n.file-request-dialog__emails[data-v-00d130ff] {\n\tdisplay: flex;\n\tgap: var(--default-grid-baseline);\n\tflex-wrap: wrap;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogFinish.vue"],names:[],mappings:";AAsOA;;CAEA,yBAAA;AACA;AAEA;CACA,aAAA;CACA,iCAAA;CACA,eAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.file-request-dialog{--margin: 18px}.file-request-dialog__header{margin:0 var(--margin)}.file-request-dialog__form{position:relative;overflow:auto;padding:var(--margin) var(--margin);margin-top:calc(-1*var(--margin))}.file-request-dialog fieldset{display:flex;flex-direction:column;width:100%;margin-top:var(--margin)}.file-request-dialog fieldset legend{display:flex;align-items:center;width:100%}.file-request-dialog__info{color:var(--color-text-maxcontrast);padding-block:4px;display:flex;align-items:center}.file-request-dialog__info .file-request-dialog__info-icon{margin-inline-end:8px}.file-request-dialog .dialog__actions{width:auto;margin-inline:12px}.file-request-dialog .dialog__actions span.dialog__actions-separator{margin-inline-start:auto}.file-request-dialog .input-field__helper-text-message{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/NewFileRequestDialog.vue\"],\"names\":[],\"mappings\":\"AACA,qBACC,cAAA,CAEA,6BACC,sBAAA,CAGD,2BACC,iBAAA,CACA,aAAA,CACA,mCAAA,CAEA,iCAAA,CAGD,8BACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,wBAAA,CAEA,qCACC,YAAA,CACA,kBAAA,CACA,UAAA,CAMF,2BACC,mCAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,2DACC,qBAAA,CAIF,sCACC,UAAA,CACA,kBAAA,CACA,qEACC,wBAAA,CAIF,uDAEC,mCAAA\",\"sourcesContent\":[\"\\n.file-request-dialog {\\n\\t--margin: 18px;\\n\\n\\t&__header {\\n\\t\\tmargin: 0 var(--margin);\\n\\t}\\n\\n\\t&__form {\\n\\t\\tposition: relative;\\n\\t\\toverflow: auto;\\n\\t\\tpadding: var(--margin) var(--margin);\\n\\t\\t// overlap header bottom padding\\n\\t\\tmargin-top: calc(-1 * var(--margin));\\n\\t}\\n\\n\\tfieldset {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-top: var(--margin);\\n\\n\\t\\tlegend {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t}\\n\\n\\t// Using a NcNoteCard was a bit much sometimes.\\n\\t// Using a simple paragraph instead does it.\\n\\t&__info {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: 4px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t.file-request-dialog__info-icon {\\n\\t\\t\\tmargin-inline-end: 8px;\\n\\t\\t}\\n\\t}\\n\\n\\t.dialog__actions {\\n\\t\\twidth: auto;\\n\\t\\tmargin-inline: 12px;\\n\\t\\tspan.dialog__actions-separator {\\n\\t\\t\\tmargin-inline-start: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t.input-field__helper-text-message {\\n\\t\\t// reduce helper text standing out\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.file-request-dialog__note[data-v-f8940020] textarea {\n\twidth: 100% !important;\n\tmin-height: 80px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue\"],\"names\":[],\"mappings\":\";AAwKA;CACA,sBAAA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{staticClass:\"file-request-dialog\",attrs:{\"data-cy-file-request-dialog\":\"\",\"close-on-click-outside\":false,\"name\":_vm.currentStep !== _vm.STEP.LAST ? _vm.t('files_sharing', 'Create a file request') : _vm.t('files_sharing', 'File request created'),\"size\":\"normal\"},on:{\"closing\":_vm.onCancel},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.SECOND),expression:\"currentStep === STEP.SECOND\"}],attrs:{\"aria-label\":_vm.t('files_sharing', 'Previous step'),\"disabled\":_vm.loading,\"data-cy-file-request-dialog-controls\":\"back\",\"variant\":\"tertiary\"},on:{\"click\":function($event){_vm.currentStep = _vm.STEP.FIRST}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Previous step'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"dialog__actions-separator\"}),_vm._v(\" \"),(_vm.currentStep !== _vm.STEP.LAST)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Cancel'),\"disabled\":_vm.loading,\"title\":_vm.t('files_sharing', 'Cancel the file request creation'),\"data-cy-file-request-dialog-controls\":\"cancel\",\"variant\":\"tertiary\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")]):(_vm.emails.length !== 0)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Close without sending emails'),\"disabled\":_vm.loading,\"title\":_vm.t('files_sharing', 'Close without sending emails'),\"data-cy-file-request-dialog-controls\":\"cancel\",\"variant\":\"tertiary\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Close'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.currentStep !== _vm.STEP.LAST)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Continue'),\"disabled\":_vm.loading,\"data-cy-file-request-dialog-controls\":\"next\"},on:{\"click\":_vm.onPageNext},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconNext',{attrs:{\"size\":20}})]},proxy:true}],null,false,3563923451)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Continue'))+\"\\n\\t\\t\")]):_c('NcButton',{attrs:{\"aria-label\":_vm.finishButtonLabel,\"disabled\":_vm.loading,\"data-cy-file-request-dialog-controls\":\"finish\",\"variant\":\"primary\"},on:{\"click\":_vm.onFinish},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconCheck',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.finishButtonLabel)+\"\\n\\t\\t\")])]},proxy:true}])},[_c('NcNoteCard',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.FIRST),expression:\"currentStep === STEP.FIRST\"}],staticClass:\"file-request-dialog__header\",attrs:{\"type\":\"info\"}},[_c('p',{staticClass:\"file-request-dialog__description\",attrs:{\"id\":\"file-request-dialog-description\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Collect files from others even if they do not have an account.'))+\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'To ensure you can receive files, verify you have enough storage available.'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('form',{ref:\"form\",staticClass:\"file-request-dialog__form\",attrs:{\"aria-describedby\":\"file-request-dialog-description\",\"aria-label\":_vm.t('files_sharing', 'File request'),\"aria-live\":\"polite\",\"data-cy-file-request-dialog-form\":\"\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('FileRequestIntro',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.FIRST),expression:\"currentStep === STEP.FIRST\"}],attrs:{\"context\":_vm.context,\"destination\":_vm.destination,\"disabled\":_vm.loading,\"label\":_vm.label,\"note\":_vm.note},on:{\"update:destination\":function($event){_vm.destination=$event},\"update:label\":function($event){_vm.label=$event},\"update:note\":function($event){_vm.note=$event}}}),_vm._v(\" \"),_c('FileRequestDatePassword',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.SECOND),expression:\"currentStep === STEP.SECOND\"}],attrs:{\"disabled\":_vm.loading,\"expiration-date\":_vm.expirationDate,\"password\":_vm.password},on:{\"update:expirationDate\":function($event){_vm.expirationDate=$event},\"update:expiration-date\":function($event){_vm.expirationDate=$event},\"update:password\":function($event){_vm.password=$event}}}),_vm._v(\" \"),(_vm.share)?_c('FileRequestFinish',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep === _vm.STEP.LAST),expression:\"currentStep === STEP.LAST\"}],attrs:{\"emails\":_vm.emails,\"is-share-by-mail-enabled\":_vm.isShareByMailEnabled,\"share\":_vm.share},on:{\"add-email\":email => _vm.emails.push(email),\"remove-email\":_vm.onRemoveEmail}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AutoFix.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AutoFix.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AutoFix.vue?vue&type=template&id=3fb26506\"\nimport script from \"./AutoFix.vue?vue&type=script&lang=js\"\nexport * from \"./AutoFix.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon auto-fix-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7.5,5.6L5,7L6.4,4.5L5,2L7.5,3.4L10,2L8.6,4.5L10,7L7.5,5.6M19.5,15.4L22,14L20.6,16.5L22,19L19.5,17.6L17,19L18.4,16.5L17,14L19.5,15.4M22,2L20.6,4.5L22,7L19.5,5.6L17,7L18.4,4.5L17,2L19.5,3.4L22,2M13.34,12.78L15.78,10.34L13.66,8.22L11.22,10.66L13.34,12.78M14.37,7.29L16.71,9.63C17.1,10 17.1,10.65 16.71,11.04L5.04,22.71C4.65,23.1 4,23.1 3.63,22.71L1.29,20.37C0.9,20 0.9,19.35 1.29,18.96L12.96,7.29C13.35,6.9 14,6.9 14.37,7.29Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Information.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Information.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Information.vue?vue&type=template&id=08fbdef3\"\nimport script from \"./Information.vue?vue&type=script&lang=js\"\nexport * from \"./Information.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon information-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Config from '../services/ConfigService.ts';\nimport logger from '../services/logger.ts';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate);\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n logger.info('Error generating password from password_policy', { error });\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n/**\n * Fills the given array with cryptographically secure random values.\n * If the crypto API is not available, it falls back to less secure Math.random().\n * Crypto API is available in modern browsers on secure contexts (HTTPS).\n *\n * @param array - The array to fill with random values.\n */\nfunction getRandomValues(array) {\n if (self?.crypto?.getRandomValues) {\n self.crypto.getRandomValues(array);\n return;\n }\n let len = array.length;\n while (len--) {\n array[len] = Math.floor(Math.random() * 256);\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.passwordAndExpirationSummary)?_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.passwordAndExpirationSummary)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__expiration\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"expiration\"}},[_c('legend',[_vm._v(_vm._s(_vm.t('files_sharing', 'When should the request expire?')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isExpirationDateEnforced),expression:\"!isExpirationDateEnforced\"}],attrs:{\"model-value\":_vm.isExpirationDateEnforced || _vm.expirationDate !== null,\"disabled\":_vm.disabled || _vm.isExpirationDateEnforced},on:{\"update:modelValue\":_vm.onToggleDeadline}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set a submission expiration date'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expirationDate !== null)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"file-request-dialog-expirationDate\",\"disabled\":_vm.disabled,\"hide-label\":true,\"label\":_vm.t('files_sharing', 'Expiration date'),\"max\":_vm.maxDate,\"min\":_vm.minDate,\"placeholder\":_vm.t('files_sharing', 'Select a date'),\"required\":_vm.defaultExpireDateEnforced,\"model-value\":_vm.expirationDate,\"name\":\"expirationDate\",\"type\":\"date\"},on:{\"input\":function($event){return _vm.$emit('update:expirationDate', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.defaultExpireDateEnforced)?_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconInfo',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Your administrator has enforced a {count} days expiration policy.', { count: _vm.defaultExpireDate }))+\"\\n\\t\\t\")],1):_vm._e()],1),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__password\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"password\"}},[_c('legend',[_vm._v(_vm._s(_vm.t('files_sharing', 'What password should be used for the request?')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isPasswordEnforced),expression:\"!isPasswordEnforced\"}],attrs:{\"model-value\":_vm.isPasswordEnforced || _vm.password !== null,\"disabled\":_vm.disabled || _vm.isPasswordEnforced},on:{\"update:modelValue\":_vm.onTogglePassword}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set a password'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.password !== null)?_c('div',{staticClass:\"file-request-dialog__password-field\"},[_c('NcPasswordField',{ref:\"passwordField\",attrs:{\"check-password-strength\":true,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Password'),\"placeholder\":_vm.t('files_sharing', 'Enter a valid password'),\"required\":_vm.enforcePasswordForPublicLink,\"model-value\":_vm.password,\"name\":\"password\"},on:{\"update:value\":function($event){return _vm.$emit('update:password', $event)}}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Generate a new password'),\"title\":_vm.t('files_sharing', 'Generate a new password'),\"variant\":\"tertiary-no-background\"},on:{\"click\":_vm.onGeneratePassword},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPasswordGen',{attrs:{\"size\":20}})]},proxy:true}],null,false,1334968784)})],1):_vm._e(),_vm._v(\" \"),(_vm.enforcePasswordForPublicLink)?_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconInfo',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Your administrator has enforced a password protection.'))+\"\\n\\t\\t\")],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=style&index=0&id=4f93c9b6&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogDatePassword.vue?vue&type=style&index=0&id=4f93c9b6&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialogDatePassword.vue?vue&type=template&id=4f93c9b6&scoped=true\"\nimport script from \"./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialogDatePassword.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialogDatePassword.vue?vue&type=style&index=0&id=4f93c9b6&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f93c9b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'You can now share the link below to allow people to upload files to your directory.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcInputField',{ref:\"clipboard\",attrs:{\"model-value\":_vm.shareLink,\"label\":_vm.t('files_sharing', 'Share link'),\"readonly\":true,\"show-trailing-button\":true,\"trailing-button-label\":_vm.t('files_sharing', 'Copy'),\"data-cy-file-request-dialog-fieldset\":\"link\"},on:{\"click\":_vm.copyShareLink,\"trailing-button-click\":_vm.copyShareLink},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.isCopied)?_c('IconCheck',{attrs:{\"size\":20}}):_c('IconClipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),(_vm.isShareByMailEnabled)?[_c('NcTextField',{attrs:{\"label\":_vm.t('files_sharing', 'Send link via email'),\"placeholder\":_vm.t('files_sharing', 'Enter an email address or paste a list'),\"data-cy-file-request-dialog-fieldset\":\"email\",\"type\":\"email\"},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.stopPropagation();return _vm.addNewEmail.apply(null, arguments)},\"paste\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onPasteEmails.apply(null, arguments)}},nativeOn:{\"focusout\":function($event){return _vm.addNewEmail.apply(null, arguments)}},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_vm._v(\" \"),(_vm.emails.length > 0)?_c('div',{staticClass:\"file-request-dialog__emails\"},_vm._l((_vm.emails),function(mail){return _c('NcChip',{key:mail,attrs:{\"aria-label-close\":_vm.t('files_sharing', 'Remove email'),\"text\":mail},on:{\"close\":function($event){return _vm.$emit('remove-email', mail)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"disable-tooltip\":\"\",\"display-name\":mail,\"is-no-user\":\"\",\"hide-status\":\"\",\"size\":24}})]},proxy:true}],null,true)})}),1):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClipboardText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClipboardText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ClipboardText.vue?vue&type=template&id=58267ecd\"\nimport script from \"./ClipboardText.vue?vue&type=script&lang=js\"\nexport * from \"./ClipboardText.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clipboard-text-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,9H7V7H17M17,13H7V11H17M14,17H7V15H14M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=style&index=0&id=00d130ff&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogFinish.vue?vue&type=style&index=0&id=00d130ff&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialogFinish.vue?vue&type=template&id=00d130ff&scoped=true\"\nimport script from \"./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialogFinish.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialogFinish.vue?vue&type=style&index=0&id=00d130ff&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00d130ff\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('fieldset',{staticClass:\"file-request-dialog__label\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"label\"}},[_c('legend',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'What are you requesting?'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"model-value\":_vm.label,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Request subject'),\"placeholder\":_vm.t('files_sharing', 'Birthday party photos, History assignment…'),\"required\":false,\"name\":\"label\"},on:{\"update:value\":function($event){return _vm.$emit('update:label', $event)}}})],1),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__destination\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"destination\"}},[_c('legend',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Where should these files go?'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"model-value\":_vm.destination,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Upload destination'),\"minlength\":2/* cannot share root */,\"placeholder\":_vm.t('files_sharing', 'Select a destination'),\"readonly\":false /* cannot validate a readonly input */,\"required\":true /* cannot be empty */,\"show-trailing-button\":_vm.destination !== _vm.context.path,\"trailing-button-icon\":\"undo\",\"trailing-button-label\":_vm.t('files_sharing', 'Revert to default'),\"name\":\"destination\"},on:{\"click\":_vm.onPickDestination,\"keypress\":function($event){$event.preventDefault();$event.stopPropagation();/* prevent typing in the input, we use the picker */},\"paste\":function($event){$event.preventDefault();$event.stopPropagation();/* prevent pasting in the input, we use the picker */},\"trailing-button-click\":function($event){return _vm.$emit('update:destination', '')}}},[_c('IconFolder',{attrs:{\"size\":18}})],1),_vm._v(\" \"),_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconLock',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'The uploaded files are visible only to you unless you choose to share them.'))+\"\\n\\t\\t\")],1)],1),_vm._v(\" \"),_c('fieldset',{staticClass:\"file-request-dialog__note\",attrs:{\"data-cy-file-request-dialog-fieldset\":\"note\"}},[_c('legend',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add a note'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextArea',{attrs:{\"model-value\":_vm.note,\"disabled\":_vm.disabled,\"label\":_vm.t('files_sharing', 'Note for recipient'),\"placeholder\":_vm.t('files_sharing', 'Add a note to help people understand what you are requesting.'),\"required\":false,\"name\":\"note\"},on:{\"update:value\":function($event){return _vm.$emit('update:note', $event)}}}),_vm._v(\" \"),_c('p',{staticClass:\"file-request-dialog__info\"},[_c('IconInfo',{staticClass:\"file-request-dialog__info-icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'You can add links, date or any other information that will help the recipient understand what you are requesting.'))+\"\\n\\t\\t\")],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Lock.vue?vue&type=template&id=6d856da2\"\nimport script from \"./Lock.vue?vue&type=script&lang=js\"\nexport * from \"./Lock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=style&index=0&id=f8940020&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialogIntro.vue?vue&type=style&index=0&id=f8940020&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialogIntro.vue?vue&type=template&id=f8940020&scoped=true\"\nimport script from \"./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialogIntro.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialogIntro.vue?vue&type=style&index=0&id=f8940020&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f8940020\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport logger from '../services/logger.ts';\nimport { isFileRequest } from '../services/SharingService.ts';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch {\n logger.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n *\n * @return date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n *\n * @param date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Password expiration time\n *\n * @return date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n *\n * @param passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n *\n * @return 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n /**\n * Is the share from a trusted server\n */\n get isTrustedServer() {\n return !!this._share.is_trusted_server;\n }\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=style&index=0&id=164bdd6b&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFileRequestDialog.vue?vue&type=style&index=0&id=164bdd6b&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewFileRequestDialog.vue?vue&type=template&id=164bdd6b\"\nimport script from \"./NewFileRequestDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./NewFileRequestDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./NewFileRequestDialog.vue?vue&type=style&index=0&id=164bdd6b&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","config","Config","sharingConfig","defineComponent","components","IconInfo","IconPasswordGen","NcButton","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcNoteCard","NcPasswordField","disabled","Boolean","required","expirationDate","Date","password","setup","t","defaultExpireDate","defaultExpireDateEnabled","isDefaultExpireDateEnabled","defaultExpireDateEnforced","isDefaultExpireDateEnforced","enableLinkPasswordByDefault","enforcePasswordForPublicLink","data","maxDate","minDate","setDate","getDate","computed","passwordAndExpirationSummary","date","toLocaleDateString","isExpirationDateEnforced","isPasswordEnforced","mounted","defaultExpirationDate","generatePassword","methods","onToggleDeadline","checked","onTogglePassword","onGeneratePassword","showPassword","async","verbose","passwordPolicy","api","generate","request","axios","get","ocs","showSuccess","error","logger","info","showError","array","Uint8Array","ratio","passwordSet","self","crypto","getRandomValues","len","length","Math","floor","random","i","charAt","GeneratePassword","then","$refs","passwordField","isPasswordHidden","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","directives","rawName","value","expression","count","ref","scopedSlots","_u","key","fn","proxy","IconCheck","IconClipboard","NcAvatar","NcInputField","NcTextField","NcChip","share","Object","emails","Array","isShareByMailEnabled","n","isCopied","email","shareLink","generateUrl","token","baseURL","getBaseUrl","copyShareLink","event","navigator","clipboard","writeText","target","select","setTimeout","window","prompt","addNewEmail","e","trim","HTMLInputElement","setCustomValidity","checkValidity","reportValidity","includes","isValidEmail","onPasteEmails","clipboardData","getData","split","filter","map","duplicateEmails","validEmails","invalidEmails","forEach","join","indexOf","_k","keyCode","stopPropagation","apply","arguments","preventDefault","nativeOn","model","callback","$$v","_l","mail","IconFolder","IconLock","NcTextArea","context","label","destination","note","onPickDestination","filepicker","getFilePickerBuilder","addMimeTypeFilter","allowDirectories","addButton","onPickedDestination","setFilter","node","path","startAt","build","pick","nodes","STEP","Share","constructor","ocsData","parseInt","hide_download","mail_send","attributes","JSON","parse","warn","_share","state","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","mailSend","hideDownload","undefined","find","scope","attribute","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","itemType","item_type","mimetype","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","OC","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","stringify","enabled","setAttribute","attrUpdate","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","parent","storageId","storage_id","storage","itemSource","item_source","status","isTrustedServer","is_trusted_server","FileRequestDatePassword","FileRequestFinish","FileRequestIntro","IconNext","NcDialog","NcLoadingIcon","content","isMailShareAllowed","currentStep","FIRST","loading","finishButtonLabel","onPageNext","form","querySelectorAll","input","destinationInput","querySelector","createShare","SECOND","onRemoveEmail","index","onCancel","onFinish","setShareEmails","sendEmails","getFullYear","getMonth","toString","padStart","shareUrl","generateOcsUrl","post","shareType","ShareType","Email","Link","Permission","CREATE","emit","LAST","errorMessage","response","meta","message","Error","put","onEmailSendError"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/6784-6784.js.map.license b/dist/6784-6784.js.map.license deleted file mode 120000 index 468e9d8817e..00000000000 --- a/dist/6784-6784.js.map.license +++ /dev/null @@ -1 +0,0 @@ -6784-6784.js.license \ No newline at end of file diff --git a/dist/8309-8309.js b/dist/8309-8309.js deleted file mode 100644 index 2ef91a113f1..00000000000 --- a/dist/8309-8309.js +++ /dev/null @@ -1,2 +0,0 @@ -(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[8309],{5016(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-expiry-time[data-v-c9199db0]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-c9199db0]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-c9199db0]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-c9199db0]{padding:var(--border-radius-element);max-width:300px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue"],names:[],mappings:"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA",sourcesContent:["\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\n}\n"],sourceRoot:""}]);const o=r},10322(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-469e5e80]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-469e5e80]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-469e5e80]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-469e5e80],.sharing-entry__summary__desc small[data-v-469e5e80]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-469e5e80]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntry.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]);const o=r},12231(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-4ca4172c]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-4ca4172c]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-4ca4172c]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-4ca4172c]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-4ca4172c]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-4ca4172c]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-4ca4172c]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-4ca4172c] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-4ca4172c]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-4ca4172c]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-4ca4172c],.sharing-entry .action-item~.sharing-entry__loading[data-v-4ca4172c]{margin-inline-start:0}.sharing-entry__copy-icon--success[data-v-4ca4172c]{color:var(--color-border-success)}.qr-code-dialog[data-v-4ca4172c]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-4ca4172c]{width:100%;height:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryLink.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,oDACC,iCAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t&__copy-icon--success {\n\t\tcolor: var(--color-border-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r},15667(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".emptyContentWithSections[data-v-7cacff60]{margin:1rem auto}.sharingTab[data-v-7cacff60]{position:relative;height:100%}.sharingTab__content[data-v-7cacff60]{padding:0 6px}.sharingTab__content section[data-v-7cacff60]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-7cacff60]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-7cacff60]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-7cacff60]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-7cacff60]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-7cacff60]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-7cacff60]{margin:var(--default-clickable-area) 0}.hint-body[data-v-7cacff60]{max-width:300px;padding:var(--border-radius-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingTab.vue"],names:[],mappings:"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,sCAAA,CAIF,4BACC,eAAA,CACA,oCAAA",sourcesContent:["\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: var(--default-clickable-area) 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=r},18999(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-13d4a0bb]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-13d4a0bb]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-13d4a0bb]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-13d4a0bb]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-13d4a0bb]{margin-inline-start:auto !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},24708(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-select[data-v-11ecc4a6]{display:block}.share-select[data-v-11ecc4a6] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-11ecc4a6] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-11ecc4a6] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-11ecc4a6] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"],names:[],mappings:"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA",sourcesContent:["\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},25224(e,t,i){"use strict";i.d(t,{A:()=>o});var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,"\n.sharing-tab-external-section-legacy[data-v-240645c6] {\n\twidth: 100%;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SidebarTabExternal/SidebarTabExternalSectionLegacy.vue"],names:[],mappings:";AAiCA;CACA,WAAA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__inherited .avatar-shared[data-v-cedf3238]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingInherited.vue\"],\"names\":[],\"mappings\":\"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA\",\"sourcesContent\":[\"\\n.sharing-entry__inherited {\\n\\t.avatar-shared {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-731a9650]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-731a9650]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-731a9650]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-731a9650]{margin-inline-start:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__desc {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-inline-start: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.fileInfo)?_c(_setup.SharingTab,{attrs:{\"file-info\":_setup.fileInfo}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ContentCopy.vue?vue&type=template&id=0e8bd3c4\"\nimport script from \"./ContentCopy.vue?vue&type=script&lang=js\"\nexport * from \"./ContentCopy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon content-copy-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=13d4a0bb&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13d4a0bb\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { generateUrl, getBaseUrl } from '@nextcloud/router';\n/**\n * @param fileid - The file ID to generate the direct file link for\n */\nexport function generateFileUrl(fileid) {\n const baseURL = getBaseUrl();\n const { globalscale } = getCapabilities();\n if (globalscale?.token) {\n return generateUrl('/gf/{token}/{fileid}', {\n token: globalscale.token,\n fileid,\n }, { baseURL });\n }\n return generateUrl('/f/{fileid}', {\n fileid,\n }, {\n baseURL,\n });\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=6c4cb23b&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c4cb23b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip},on:{\"click\":_vm.copyLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":_vm.shareInputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal\n\t\t\t? _vm.t('files_sharing', 'Enter external recipients')\n\t\t\t: _vm.t('files_sharing', 'Search for internal recipients'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":_vm.shareInputId,\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options,\"label-outside\":true},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.onSelected},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.placeholder)+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nexport const BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ,\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-CeyZUHai.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport logger from '../services/logger.ts';\nimport { isFileRequest } from '../services/SharingService.ts';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch {\n logger.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n *\n * @return date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n *\n * @param date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Password expiration time\n *\n * @return date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n *\n * @param passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n *\n * @return 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n /**\n * Is the share from a trusted server\n */\n get isTrustedServer() {\n return !!this._share.is_trusted_server;\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { File, Folder, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport logger from './logger.ts';\nconst headers = {\n 'Content-Type': 'application/json',\n};\n/**\n *\n * @param ocsEntry\n */\nasync function ocsEntryToNode(ocsEntry) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n const type = ocsEntry.type === 'dir' ? 'folder' : ocsEntry.type;\n ocsEntry.item_type = type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${getRemoteURL()}${getRootPath()}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: getRootPath(),\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n}\n/**\n *\n * @param shareWithMe\n */\nfunction getShares(shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getSharedWithYou() {\n return getShares(true);\n}\n/**\n *\n */\nfunction getSharedWithOthers() {\n return getShares();\n}\n/**\n *\n */\nfunction getRemoteShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getPendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getRemotePendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getDeletedShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n * Check if a file request is enabled\n *\n * @param attributes the share attributes json-encoded array\n */\nexport function isFileRequest(attributes = '[]') {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n}\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n *\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nfunction groupBy(nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n}\n/**\n *\n * @param sharedWithYou\n * @param sharedWithOthers\n * @param pendingShares\n * @param deletedshares\n * @param filterTypes\n */\nexport async function getContents(sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) {\n const promises = [];\n if (sharedWithYou) {\n promises.push(getSharedWithYou(), getRemoteShares());\n }\n if (sharedWithOthers) {\n promises.push(getSharedWithOthers());\n }\n if (pendingShares) {\n promises.push(getPendingShares(), getRemotePendingShares());\n }\n if (deletedshares) {\n promises.push(getDeletedShares());\n }\n const responses = await Promise.all(promises);\n const data = responses.map((response) => response.data.ocs.data).flat();\n let contents = (await Promise.all(data.map(ocsEntryToNode)))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map((node) => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${getRemoteURL()}${getRootPath()}`,\n owner: getCurrentUser()?.uid || null,\n root: getRootPath(),\n }),\n contents,\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is federation enabled ?\n */\n get isFederationEnabled() {\n return this._capabilities?.files_sharing?.federation?.outgoing === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the default days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n *\n * @return\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n /**\n * Show federated shares to trusted servers as internal shares\n *\n * @return\n */\n get showFederatedSharesToTrustedServersAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesToTrustedServersAsInternal', false);\n }\n /**\n * Show the external share ui\n */\n get showExternalSharing() {\n return loadState('files_sharing', 'showExternalSharing', true);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share = {}\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tconst handlerInput = {}\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\thandlerInput.suggestions = this.suggestions\n\t\t\t\t\thandlerInput.fileInfo = this.fileInfo\n\t\t\t\t\thandlerInput.query = this.query\n\t\t\t\t}\n\t\t\t\tconst externalShareRequestObject = await shareRequestObject.handler(handlerInput)\n\t\t\t\tshare = this.mapShareRequestToShareObject(externalShareRequestObject)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tif (this.fileInfo.type !== 'dir') {\n\t\t\t\tconst originalPermissions = share.permissions\n\t\t\t\tconst strippedPermissions = originalPermissions\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.CREATE\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.DELETE\n\n\t\t\t\tif (originalPermissions !== strippedPermissions) {\n\t\t\t\t\tlogger.debug('Removed create/delete permissions from file share (only valid for folders)')\n\t\t\t\t\tshare.permissions = strippedPermissions\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\thideDownload: false,\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions ?? new Config().defaultPermissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport Share from '../models/Share.ts'\nimport logger from '../services/logger.ts'\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the share automatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param {string} data.note custom note to recipient\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while creating share', { error })\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tshowError(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while deleting share', { error })\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error deleting the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while updating share', { error })\n\t\t\t\tif (error.response.status !== 400) {\n\t\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\t\terrorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error updating the share'),\n\t\t\t\t\t\t{ type: 'error' },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst message = error.response.data.ocs.meta.message\n\t\t\t\tthrow new Error(message)\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=b9057cce&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=b9057cce&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=b9057cce\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=b9057cce&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.section.element,{ref:\"sectionElement\",tag:\"component\",domProps:{\"node\":_vm.node}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalSection.vue?vue&type=template&id=9785f99e\"\nimport script from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"sharing-tab-external-section-legacy\"},[_c(_setup.component,{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=240645c6&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=240645c6&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SidebarTabExternalSectionLegacy.vue?vue&type=template&id=240645c6&scoped=true\"\nimport script from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nimport style0 from \"./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=240645c6&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"240645c6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"read-only\",\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"upload-edit\",\"value\":_vm.allPermissions,\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-sharing-share-permissions-bundle\":\"file-drop\",\"button-variant\":true,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File request'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"custom\",\"value\":\"custom\",\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.expandCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"id\":\"advancedSectionAccordionAdvancedControl\",\"variant\":\"tertiary\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{staticClass:\"sharingTabDetailsView__label\",attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share label')},model:{value:(_vm.share.label),callback:function ($$v) {_vm.$set(_vm.share, \"label\", $$v)},expression:\"share.label\"}}):_vm._e(),_vm._v(\" \"),(_vm.config.allowCustomTokens && _vm.isPublicShare && !_vm.isNewShare)?_c('NcInputField',{attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share link token'),\"helper-text\":_vm.t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.'),\"show-trailing-button\":\"\",\"trailing-button-label\":_vm.loadingToken ? _vm.t('files_sharing', 'Generating…') : _vm.t('files_sharing', 'Generate new token')},on:{\"trailing-button-click\":_vm.generateNewToken},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.loadingToken)?_c('NcLoadingIcon'):_c('Refresh',{attrs:{\"size\":20}})]},proxy:true}],null,false,4228062821),model:{value:(_vm.share.token),callback:function ($$v) {_vm.$set(_vm.share, \"token\", $$v)},expression:\"share.token\"}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isPasswordEnforced},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcPasswordField',{attrs:{\"autocomplete\":\"new-password\",\"model-value\":_vm.share.newPassword ?? '',\"error\":_vm.passwordError,\"helper-text\":_vm.errorPasswordLabel || _vm.passwordHint,\"required\":_vm.isPasswordEnforced && _vm.isNewShare,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{on:{\"update:modelValue\":_vm.onPasswordProtectedByTalkChange},model:{value:(_vm.isPasswordProtectedByTalk),callback:function ($$v) {_vm.isPasswordProtectedByTalk=$$v},expression:\"isPasswordProtectedByTalk\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isExpiryDateEnforced},model:{value:(_vm.hasExpirationDate),callback:function ($$v) {_vm.hasExpirationDate=$$v},expression:\"hasExpirationDate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"share-date-picker\",\"model-value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":\"\",\"label\":_vm.t('files_sharing', 'Expiration date'),\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"input\":_vm.onExpirationChange}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload},on:{\"update:modelValue\":function($event){return _vm.queueUpdate('hideDownload')}},model:{value:(_vm.share.hideDownload),callback:function ($$v) {_vm.$set(_vm.share, \"hideDownload\", $$v)},expression:\"share.hideDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},model:{value:(_vm.canDownload),callback:function ($$v) {_vm.canDownload=$$v},expression:\"canDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download and sync'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.writeNoteToRecipientIsChecked),callback:function ($$v) {_vm.writeNoteToRecipientIsChecked=$$v},expression:\"writeNoteToRecipientIsChecked\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('NcTextArea',{attrs:{\"label\":_vm.t('files_sharing', 'Note to recipient'),\"placeholder\":_vm.t('files_sharing', 'Enter a note for the share recipient')},model:{value:(_vm.share.note),callback:function ($$v) {_vm.$set(_vm.share, \"note\", $$v)},expression:\"share.note\"}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.showInGridView),callback:function ($$v) {_vm.showInGridView=$$v},expression:\"showInGridView\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Show files in grid view'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('SidebarTabExternalAction',{key:action.id,ref:\"externalShareActions\",refInFor:true,attrs:{\"action\":action,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.setCustomPermissions),callback:function ($$v) {_vm.setCustomPermissions=$$v},expression:\"setCustomPermissions\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canRemoveReadPermission,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},model:{value:(_vm.hasRead),callback:function ($$v) {_vm.hasRead=$$v},expression:\"hasRead\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},model:{value:(_vm.canCreate),callback:function ($$v) {_vm.canCreate=$$v},expression:\"canCreate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},model:{value:(_vm.canEdit),callback:function ($$v) {_vm.canEdit=$$v},expression:\"canEdit\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.resharingIsPossible)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},model:{value:(_vm.canReshare),callback:function ($$v) {_vm.canReshare=$$v},expression:\"canReshare\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},model:{value:(_vm.canDelete),callback:function ($$v) {_vm.canDelete=$$v},expression:\"canDelete\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{attrs:{\"data-cy-files-sharing-share-editor-action\":\"cancel\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"variant\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\",\"disabled\":_vm.creating},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=5b2fe1de\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=fa2b1464\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-group-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=7dd7f6aa\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=4ae2345c\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=0e958886\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./TrayArrowUp.vue?vue&type=template&id=ae55bf4e\"\nimport script from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tray-arrow-up-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.action.element,{key:_vm.action.id,ref:\"actionElement\",tag:\"component\",domProps:{\"share\":_vm.share,\"node\":_vm.node,\"onSave\":_setup.onSave}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalAction.vue?vue&type=template&id=5ea2e6c7\"\nimport script from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SidebarTabExternalActionLegacy.vue?vue&type=template&id=50e2cb04\"\nimport script from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\nexport * from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.data.is,_vm._g(_vm._b({tag:\"component\"},'component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\n/**\n * Fetches a node from the given path\n *\n * @param path - The path to fetch the node from\n */\nexport async function fetchNode(path) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Config from '../services/ConfigService.ts';\nimport logger from '../services/logger.ts';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate);\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n logger.info('Error generating password from password_policy', { error });\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n/**\n * Fills the given array with cryptographically secure random values.\n * If the crypto API is not available, it falls back to less secure Math.random().\n * Crypto API is available in modern browsers on secure contexts (HTTPS).\n *\n * @param array - The array to fill with random values.\n */\nfunction getRandomValues(array) {\n if (self?.crypto?.getRandomValues) {\n self.crypto.getRandomValues(array);\n return;\n }\n let len = array.length;\n while (len--) {\n array[len] = Math.floor(Math.random() * 256);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { ShareType } from '@nextcloud/sharing'\nimport debounce from 'debounce'\nimport PQueue from 'p-queue'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\nimport {\n\tATOMIC_PERMISSIONS,\n\tBUNDLED_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport SharesRequests from './ShareRequests.js'\n\nexport default {\n\tmixins: [SharesRequests],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tnode: null,\n\t\t\tShareType,\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t/** @type {boolean | undefined} */\n\t\t\tpasswordProtectedState: undefined,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpath() {\n\t\t\treturn (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t},\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by Nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by Nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn !this.share.id\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t\treturn this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\tconst bundledPermissions = [\n\t\t\t\tBUNDLED_PERMISSIONS.ALL,\n\t\t\t\tBUNDLED_PERMISSIONS.ALL_FILE,\n\t\t\t\tBUNDLED_PERMISSIONS.READ_ONLY,\n\t\t\t\tBUNDLED_PERMISSIONS.FILE_DROP,\n\t\t\t]\n\t\t\tconst permissionsWithoutShare = this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE\n\t\t\treturn !bundledPermissions.includes(permissionsWithoutShare)\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.defaultExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\tif (this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (this.passwordProtectedState !== undefined) {\n\t\t\t\t\treturn this.passwordProtectedState\n\t\t\t\t}\n\t\t\t\treturn typeof this.share.newPassword === 'string'\n\t\t\t\t\t|| typeof this.share.password === 'string'\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.passwordProtectedState = true\n\t\t\t\t\tthis.$set(this.share, 'newPassword', await GeneratePassword(true))\n\t\t\t\t} else {\n\t\t\t\t\tthis.passwordProtectedState = false\n\t\t\t\t\tthis.$set(this.share, 'newPassword', '')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Fetch WebDAV node\n\t\t *\n\t\t * @return {Node}\n\t\t */\n\t\tasync getNode() {\n\t\t\tconst node = { path: this.path }\n\t\t\ttry {\n\t\t\t\tthis.node = await fetchNode(node.path)\n\t\t\t\tlogger.info('Fetched node:', { node: this.node })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error:', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.newPassword) {\n\t\t\t\tif (typeof share.newPassword !== 'string') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date the date to format\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.share.expireDate = null\n\t\t\t\tthis.$set(this.share, 'expireDate', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parsedDate = (date instanceof Date) ? date : new Date(date)\n\t\t\tthis.share.expireDate = this.formatDateToString(parsedDate)\n\t\t},\n\n\t\t/**\n\t\t * Note changed, let's save it to a different key\n\t\t *\n\t\t * @param {string} note the share note\n\t\t */\n\t\tonNoteChange(note) {\n\t\t\tthis.$set(this.share, 'newNote', note.trim())\n\t\t},\n\n\t\t/**\n\t\t * When the note change, we trim, save and dispatch\n\t\t *\n\t\t */\n\t\tonNoteSubmit() {\n\t\t\tif (this.share.newNote) {\n\t\t\t\tthis.share.note = this.share.newNote\n\t\t\t\tthis.$delete(this.share, 'newNote')\n\t\t\t\tthis.queueUpdate('note')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tlogger.debug('Share deleted', { shareId: this.share.id })\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\t\t\t} catch {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tfor (const name of propertyNames) {\n\t\t\t\t\tif (name === 'password') {\n\t\t\t\t\t\tif (this.share.newPassword !== undefined) {\n\t\t\t\t\t\t\tproperties[name] = this.share.newPassword\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.share[name] === null || this.share[name] === undefined) {\n\t\t\t\t\t\tproperties[name] = ''\n\t\t\t\t\t} else if ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.includes('password')) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.share.password = this.share.newPassword || undefined\n\t\t\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\tthis.$delete(this.errors, property)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowSuccess(this.updateSuccessMessage(propertyNames))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.error('Could not update share', { error, share: this.share, propertyNames })\n\n\t\t\t\t\t\tconst { message } = error\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\t\tthis.onSyncError(property, message)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowError(message)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We do not have information what happened, but we should still inform the user\n\t\t\t\t\t\t\tshowError(t('files_sharing', 'Could not update share'))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tlogger.debug('Updated local share', { share: this.share })\n\t\t},\n\n\t\t/**\n\t\t * @param {string[]} names Properties changed\n\t\t */\n\t\tupdateSuccessMessage(names) {\n\t\t\tif (names.length !== 1) {\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\n\t\t\tswitch (names[0]) {\n\t\t\t\tcase 'expireDate':\n\t\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\t\tcase 'hideDownload':\n\t\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\t\tcase 'label':\n\t\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\t\tcase 'note':\n\t\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\t\tcase 'password':\n\t\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\t\tcase 'permissions':\n\t\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\t\tdefault:\n\t\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\tif (property === 'password' && this.share.newPassword !== undefined) {\n\t\t\t\tif (this.share.newPassword === this.share.password) {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t}\n\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t}\n\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\t\tcase 'password':\n\t\t\t\tcase 'pending':\n\t\t\t\tcase 'expireDate':\n\t\t\t\tcase 'label':\n\t\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\t\tif (propertyEl) {\n\t\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\t// Restore previous state\n\t\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport isSvg from 'is-svg';\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (!action.element || !action.element.startsWith('oca_') || !window.customElements.get(action.element)) {\n throw new Error('Sidebar actions must provide a registered custom web component identifier');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the order property');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_actions.set(action.id, action);\n}\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarInlineAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the \"order\" property');\n }\n if (typeof action.iconSvg !== 'string' || !isSvg(action.iconSvg)) {\n throw new Error('Sidebar actions must have the \"iconSvg\" property');\n }\n if (typeof action.label !== 'function') {\n throw new Error('Sidebar actions must implement the \"label\" method');\n }\n if (typeof action.exec !== 'function') {\n throw new Error('Sidebar actions must implement the \"exec\" method');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_inline_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_inline_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_inline_actions.set(action.id, action);\n}\n/**\n * Get all registered sidebar actions\n */\nexport function getSidebarActions() {\n return [...(window._nc_files_sharing_sidebar_actions?.values() ?? [])];\n}\n/**\n * Get all registered sidebar inline actions\n */\nexport function getSidebarInlineActions() {\n return [...(window._nc_files_sharing_sidebar_inline_actions?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\n/**\n *\n */\nexport async function generateToken() {\n const { data } = await axios.get(generateOcsUrl('/apps/files_sharing/api/v1/token'));\n return data.ocs.data.token;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=34db2cbd&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=34db2cbd&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=34db2cbd&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=34db2cbd&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34db2cbd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=731a9650&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"731a9650\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', { folder: _vm.viaFolderName }))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=cedf3238&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cedf3238\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Link shares')}},[(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e(),_vm._v(\" \"),(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlankOutline.vue?vue&type=template&id=784b59e6\"\nimport script from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=5603f41f\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-bold-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=03239926\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon exclamation-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./LockOutline.vue?vue&type=template&id=54353a96\"\nimport script from \"./LockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./LockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=aba87788\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=18d04e6a\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share-expiry-time\"},[_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.expiryTime)?_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('files_sharing', 'Share expiration: {date}', { date: new Date(_vm.expiryTime).toLocaleString() })},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ClockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3754271979)}):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_c('h3',{staticClass:\"hint-heading\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share Expiration'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expiryTime)?_c('p',{staticClass:\"hint-body\"},[_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime,\"format\":_vm.timeFormat,\"relative-time\":false}}),_vm._v(\" (\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime}}),_vm._v(\")\\n\\t\\t\")],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ClockOutline.vue?vue&type=template&id=1a84e403\"\nimport script from \"./ClockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ClockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ShareExpiryTime.vue?vue&type=template&id=c9199db0&scoped=true\"\nimport script from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nexport * from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nimport style0 from \"./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c9199db0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=e26de6f6\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","\n\n","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=1eed3dd9\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=11ecc4a6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=11ecc4a6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=11ecc4a6&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=11ecc4a6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11ecc4a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"quickShareActions\",staticClass:\"share-select\",attrs:{\"menu-name\":_vm.selectedOption,\"aria-label\":_vm.ariaLabel,\"variant\":\"tertiary-no-background\",\"disabled\":!_vm.share.canEdit,\"force-name\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DropdownIcon',{attrs:{\"size\":15}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.options),function(option){return _c('NcActionButton',{key:option.label,attrs:{\"type\":\"radio\",\"model-value\":option.label === _vm.selectedOption,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.selectOption(option.label)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(option.icon,{tag:\"component\"})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(option.label)+\"\\n\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=4ca4172c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=4ca4172c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=4ca4172c&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=4ca4172c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ca4172c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined)?_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__actions\"},[(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkLabel,\"title\":_vm.copySuccess ? _vm.t('files_sharing', 'Successfully copied public link') : undefined,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{staticClass:\"sharing-entry__copy-icon\",class:{ 'sharing-entry__copy-icon--success': _vm.copySuccess },attrs:{\"path\":_vm.copySuccess ? _vm.mdiCheck : _vm.mdiContentCopy}})]},proxy:true}],null,false,1728815133)})],1):_vm._e()],1)],1)]),_vm._v(\" \"),(!_vm.pending && _vm.pendingDataIsMissing)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onCancel}},[(_vm.errors.pending)?_c('NcActionText',{staticClass:\"error\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ErrorIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1966124155)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"uncheck\":_vm.onPasswordDisable},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.enforcePasswordForPublicLink ? _vm.t('files_sharing', 'Password protection (enforced)') : _vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.isPasswordProtected)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\"autocomplete\":\"new-password\"},on:{\"submit\":function($event){return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2056568168),model:{value:(_vm.share.newPassword),callback:function ($$v) {_vm.$set(_vm.share, \"newPassword\", $$v)},expression:\"share.newPassword\"}}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:model-value\":_vm.onExpirationDateToggleUpdate},model:{value:(_vm.defaultExpirationDateEnabled),callback:function ($$v) {_vm.defaultExpirationDateEnabled=$$v},expression:\"defaultExpirationDateEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.isDefaultExpireDateEnforced ? _vm.t('files_sharing', 'Enable link expiration (enforced)') : _vm.t('files_sharing', 'Enable link expiration'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),((_vm.pendingDefaultExpirationDate || _vm.pendingEnforcedExpirationDate) && _vm.defaultExpirationDateEnabled)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"data-cy-files-sharing-expiration-date-input\":\"\",\"label\":_vm.pendingEnforcedExpirationDate ? _vm.t('files_sharing', 'Enter expiration date (enforced)') : _vm.t('files_sharing', 'Enter expiration date'),\"disabled\":_vm.saving,\"is-native-picker\":true,\"hide-label\":true,\"model-value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.expirationDateChanged},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"disabled\":_vm.pendingEnforcedPassword && !_vm.share.newPassword},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CheckIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2630571749)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onMenuClose}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();_vm.showQRCode = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQr',{attrs:{\"size\":20}})]},proxy:true}],null,false,1082198240)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Generate QR code'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('NcActionButton',{key:action.id,on:{\"click\":function($event){return action.exec(_vm.share, _vm.fileInfo.node)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvg}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.label(_vm.share, _vm.fileInfo.node))+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('NcLoadingIcon',{staticClass:\"sharing-entry__loading\"}),_vm._v(\" \"),(_vm.showQRCode)?_c('NcDialog',{attrs:{\"size\":\"normal\",\"open\":_vm.showQRCode,\"name\":_vm.title,\"close-on-click-outside\":true},on:{\"update:open\":function($event){_vm.showQRCode=$event},\"close\":function($event){_vm.showQRCode = false}}},[_c('div',{staticClass:\"qr-code-dialog\"},[_c('VueQrcode',{staticClass:\"qr-code-dialog__img\",attrs:{\"tag\":\"img\",\"value\":_vm.shareLink}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=708b3104\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=469e5e80&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=469e5e80&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=469e5e80&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=469e5e80&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"469e5e80\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t(\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),(_vm.share.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1700783217)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=7e1141c6\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"sharing-sharee-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Shares')}},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/**\n * Register a new sidebar section inside the files sharing sidebar tab.\n *\n * @param section - The section to register\n */\nexport function registerSidebarSection(section) {\n if (!section.id) {\n throw new Error('Sidebar sections must have an id');\n }\n if (!section.element || !section.element.startsWith('oca_') || !window.customElements.get(section.element)) {\n throw new Error('Sidebar sections must provide a registered custom web component identifier');\n }\n if (typeof section.order !== 'number') {\n throw new Error('Sidebar sections must have the order property');\n }\n if (typeof section.enabled !== 'function') {\n throw new Error('Sidebar sections must implement the enabled method');\n }\n window._nc_files_sharing_sidebar_sections ??= new Map();\n if (window._nc_files_sharing_sidebar_sections.has(section.id)) {\n throw new Error(`Sidebar section with id \"${section.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_sections.set(section.id, section);\n}\n/**\n * Get all registered sidebar sections for the files sharing sidebar tab.\n */\nexport function getSidebarSections() {\n return [...(window._nc_files_sharing_sidebar_sections?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ShareType } from '@nextcloud/sharing'\n\n/**\n *\n * @param share\n */\nfunction shareWithTitle(share) {\n\tif (share.type === ShareType.Group) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Team) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Room) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=7cacff60&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=7cacff60&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=7cacff60&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=7cacff60&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cacff60\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.hasExternalSections }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView),expression:\"!showSharingDetailsView\"}],staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('ul',[_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Internal shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.internalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.internalShareInputPlaceholder},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),(_vm.config.showExternalSharing)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'External shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,4045083138)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.externalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.externalShareInputPlaceholder,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{attrs:{\"shares\":_vm.externalShares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading && _vm.isLinkSharingAllowed)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasExternalSections && !_vm.showSharingDetailsView)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Additional shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Additional shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,880248230)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.additionalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_vm._l((_vm.sortedExternalSections),function(section){return _c('SidebarTabExternalSection',{key:section.id,staticClass:\"sharingTab__additionalContent\",attrs:{\"section\":section,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */}})}),_vm._v(\" \"),_vm._l((_vm.legacySections),function(section,index){return _c('SidebarTabExternalSectionLegacy',{key:index,staticClass:\"sharingTab__additionalContent\",attrs:{\"file-info\":_vm.fileInfo,\"section-callback\":section}})}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('NcCollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"","/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Convert Node to legacy file info\n *\n * @param node - The Node to convert\n */\nexport default function (node) {\n const rawFileInfo = {\n id: node.fileid,\n path: node.dirname,\n name: node.basename,\n mtime: node.mtime?.getTime(),\n etag: node.attributes.etag,\n size: node.size,\n hasPreview: node.attributes.hasPreview,\n isEncrypted: node.attributes.isEncrypted === 1,\n isFavourited: node.attributes.favorite === 1,\n mimetype: node.mime,\n permissions: node.permissions,\n mountType: node.attributes['mount-type'],\n sharePermissions: node.attributes['share-permissions'],\n shareAttributes: JSON.parse(node.attributes['share-attributes'] || '[]'),\n type: node.type === 'file' ? 'file' : 'dir',\n attributes: node.attributes,\n };\n const fileInfo = new OC.Files.FileInfo(rawFileInfo);\n // TODO remove when no more legacy backbone is used\n fileInfo.get = (key) => fileInfo[key];\n fileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory';\n fileInfo.canEdit = () => Boolean(fileInfo.permissions & OC.PERMISSION_UPDATE);\n fileInfo.node = node;\n return fileInfo;\n}\n","import { render, staticRenderFns } from \"./FilesSidebarTab.vue?vue&type=template&id=8a2257be\"\nimport script from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingInput.vue\"],\"names\":[],\"mappings\":\"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA\",\"sourcesContent\":[\"\\n.sharing-search {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 4px;\\n\\n\\tlabel[for=\\\"sharing-search-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__input {\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 10px 0;\\n\\t}\\n}\\n\\n.vs__dropdown-menu {\\n\\t// properly style the lookup entry\\n\\tspan[lookup] {\\n\\t\\t.avatardiv {\\n\\t\\t\\tbackground-image: var(--icon-search-white);\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-color: var(--color-text-maxcontrast) !important;\\n\\t\\t\\t.avatardiv__initials-wrapper {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharingTabDetailsView[data-v-34db2cbd]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-34db2cbd]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-34db2cbd]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-34db2cbd]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-34db2cbd]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-34db2cbd]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-34db2cbd]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-34db2cbd] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-34db2cbd]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-34db2cbd]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-34db2cbd],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-34db2cbd]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-34db2cbd]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-34db2cbd] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-34db2cbd]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-34db2cbd]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-34db2cbd]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-34db2cbd]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-34db2cbd]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-34db2cbd]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-34db2cbd]:first-child{margin-inline-start:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA\",\"sourcesContent\":[\"\\n.sharingTabDetailsView {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tmargin: 0 auto;\\n\\tposition: relative;\\n\\theight: 100%;\\n\\toverflow: hidden;\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0.2em;\\n\\n\\t\\tspan {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\th1 {\\n\\t\\t\\t\\tfont-size: 15px;\\n\\t\\t\\t\\tpadding-inline-start: 0.3em;\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tposition: relative;\\n\\t\\toverflow: scroll;\\n\\t\\tflex-shrink: 1;\\n\\t\\tpadding: 4px;\\n\\t\\tpadding-inline-end: 12px;\\n\\t}\\n\\n\\t&__quick-permissions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 0 auto;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\tdiv {\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\tspan:nth-child(1) {\\n\\t\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\t\\tpadding: 0.1em;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t:deep(label span) {\\n\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\\n\\t\\t\\t\\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\\n\\t\\t\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t\\t\\t.subline {\\n\\t\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\t\\tflex-basis: 100%;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced-control {\\n\\t\\twidth: 100%;\\n\\n\\t\\tbutton {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\ttext-align: start;\\n\\t\\tpadding-inline-start: 0;\\n\\n\\t\\tsection {\\n\\n\\t\\t\\ttextarea,\\n\\t\\t\\tdiv.mx-datepicker {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\ttextarea {\\n\\t\\t\\t\\theight: 80px;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/*\\n\\t\\t\\t The following style is applied out of the component's scope\\n\\t\\t\\t to remove padding from the label.checkbox-radio-switch__label,\\n\\t\\t\\t which is used to group radio checkbox items. The use of ::v-deep\\n\\t\\t\\t ensures that the padding is modified without being affected by\\n\\t\\t\\t the component's scoping.\\n\\t\\t\\t Without this achieving left alignment for the checkboxes would not\\n\\t\\t\\t be possible.\\n\\t\\t\\t*/\\n\\t\\t\\tspan :deep(label) {\\n\\t\\t\\t\\tpadding-inline-start: 0 !important;\\n\\t\\t\\t\\tbackground-color: initial !important;\\n\\t\\t\\t\\tborder: none !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\tsection.custom-permissions-group {\\n\\t\\t\\t\\tpadding-inline-start: 1.5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tpadding-block-end: 6px;\\n\\t}\\n\\n\\t&__delete {\\n\\t\\t> button:first-child {\\n\\t\\t\\tcolor: rgb(223, 7, 7);\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\talign-items: flex-start;\\n\\t\\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\\n\\n\\t\\t.button-group {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmargin-top: 16px;\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\tmargin-inline-start: 16px;\\n\\n\\t\\t\\t\\t&:first-child {\\n\\t\\t\\t\\t\\tmargin-inline-start: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__internal .avatar-external[data-v-6c4cb23b]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-6c4cb23b]{opacity:1;color:var(--color-border-success)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue\"],\"names\":[],\"mappings\":\"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.sharing-entry__internal {\\n\\t.avatar-external {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-border-success);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","self","ampersandTest","nativeURLSearchParams","URLSearchParams","get","e","isSupportObjectConstructor","a","toString","decodesPlusesCorrectly","isSupportSize","prototype","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","Symbol","iterator","name","value","appendTo","this","dict","has","getAll","slice","hasOwnProperty","set","i","key","query","encode","length","join","propValue","useProxy","Proxy","construct","target","args","Function","bind","Object","defineProperty","USPProto","polyfill","toStringTag","forEach","callback","thisArg","parseToDict","getOwnPropertyNames","call","sort","k","j","keys","values","items","item","makeIterator","entries","TypeError","reduce","prev","cur","search","str","replace","encodeURIComponent","match","decode","decodeURIComponent","arr","next","shift","done","undefined","isArray","indexOf","pairs","split","index","val","JSON","stringify","obj","prop","window","emits","props","title","type","String","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","components","NcActions","required","subtitle","isUnique","Boolean","ariaExpanded","computed","ariaExpandedValue","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_t","$slots","ref","generateFileUrl","fileid","baseURL","getBaseUrl","globalscale","getCapabilities","token","generateUrl","NcActionButton","SharingEntrySimple","CheckIcon","ClipboardIcon","fileInfo","data","copied","copySuccess","internalLink","copyLinkTooltip","t","internalLinkSubtitle","methods","copyLink","navigator","clipboard","writeText","showSuccess","$refs","shareEntrySimple","actionsComponent","$el","focus","error","logger","setTimeout","scopedSlots","_u","fn","proxy","ATOMIC_PERMISSIONS","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","defaultDavProperties","defaultDavNamespaces","d","nc","oc","ocs","uid","defaultRootPath","defaultRemoteURL","url","Share","constructor","ocsData","_defineProperty","parseInt","hide_download","mail_send","attributes","parse","warn","_share","state","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","note","label","mailSend","hideDownload","find","scope","attribute","password","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","path","itemType","item_type","mimetype","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","OC","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","enabled","setAttribute","attrUpdate","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","parent","storageId","storage_id","storage","itemSource","item_source","status","isTrustedServer","is_trusted_server","Config","_capabilities","defaultPermissions","files_sharing","default_permissions","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","defaultExpireDate","Date","setDate","getDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isFederationEnabled","federation","outgoing","isPublicShareAllowed","isMailShareAllowed","sharebymail","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","loadState","showFederatedSharesToTrustedServersAsInternal","showExternalSharing","openSharingDetails","shareRequestObject","share","handler","handlerInput","suggestions","externalShareRequestObject","mapShareRequestToShareObject","originalPermissions","strippedPermissions","debug","shareDetails","openShareDetailsForCustomSettings","setCustomPermissions","shareType","is_no_user","isNoUser","user","displayName","shareUrl","generateOcsUrl","createShare","publicUpload","request","axios","post","emit","errorMessage","response","meta","message","showError","deleteShare","delete","Notification","showTemporary","updateShare","properties","put","Error","NcSelect","mixins","ShareRequests","ShareDetails","shares","Array","linkShares","reshare","canReshare","isExternal","placeholder","setup","shareInputId","Math","random","loading","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","trim","noResultText","mounted","getRecommendations","onSelected","option","asyncFind","debounceGetSuggestions","getSuggestions","lookup","query_lookup_default","remoteTypes","ShareType","Remote","RemoteGroup","showFederatedAsInternal","shouldAddRemoteTypes","Email","User","Group","Team","Room","Guest","Deck","ScienceMesh","params","format","perPage","exact","rawExactSuggestions","flat","rawSuggestions","exactSuggestions","filterOutExistingShares","filter","result","filterByTrustedServer","map","formatForMultiselect","b","lookupEntry","lookupEnabled","condition","allSuggestions","concat","nameCounts","desc","debounce","rawRecommendations","elem","getCurrentUser","sharesObj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","extra","email","server","shareWithDescription","uuid","clear-search-on-blur","model","$$v","expression","_defineComponent","__name","node","section","__props","sectionElement","watchEffect","__sfc","_setupProxy","element","tag","domProps","sectionCallback","component","action","expose","save","actionElement","savingCallback","onSave","toRaw","_setup","is","_g","handlers","text","client","remoteURL","headers","setHeaders","requesttoken","patch","headers2","method","fetch","getClient","async","fetchNode","propfindPayload","_nc_dav_namespaces","ns","_nc_dav_properties","filesRoot","userId","permString","P","NONE","includes","READ","WRITE","CREATE","UPDATE","DELETE","SHARE","parsePermissions","mtime","lastmod","crtime","creationdate","nodeData","source","filename","isNaN","getTime","mime","displayname","getcontentlength","FAILED","root","hasPreview","resultToNode","stat","getRootPath","details","verbose","api","generate","info","array","Uint8Array","ratio","passwordSet","crypto","getRandomValues","len","floor","charAt","SharesRequests","errors","saving","open","passwordProtectedState","updateQueue","PQueue","concurrency","reactiveState","hasNote","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","isRemoteShare","isShareOwner","isExpiryDateEnforced","hasCustomPermissions","bundledPermissions","permissionsWithoutShare","maxExpirationDateEnforced","isPasswordProtected","newPassword","$set","GeneratePassword","getNode","checkShare","expirationDate","isValid","formatDateToString","UTC","getFullYear","getMonth","toISOString","onExpirationChange","parsedDate","onNoteChange","onNoteSubmit","newNote","$delete","queueUpdate","onDelete","shareId","propertyNames","add","updatedShare","property","updateSuccessMessage","onSyncError","names","propertyEl","focusable","querySelector","debounceQueueUpdate","NcAvatar","NcButton","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CloseIcon","CircleIcon","EditIcon","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuUpIcon","DotsHorizontalIcon","Refresh","SidebarTabExternalAction","SidebarTabExternalActionLegacy","SharesMixin","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","isFirstComponentLoad","test","creating","initialToken","loadingToken","externalShareActions","_nc_files_sharing_sidebar_actions","ExternalShareActions","allPermissions","checked","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canRemoveReadPermission","hasUnsavedPassword","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","isEmailShareType","canTogglePasswordProtectedByTalkAvailable","canChangeHideDownload","shareAttributes","shareAttribute","customPermissionsList","translatedPermissions","permission","hasPermissions","initialPermissionSet","permissionsToCheck","toLocaleLowerCase","getLanguage","advancedControlExpandedValue","errorPasswordLabel","passwordHint","sortedExternalShareActions","order","externalLegacyShareActions","actions","advanced","watch","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","fallback","generateNewToken","generateToken","cancel","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","addShare","Promise","allSettled","externalLinkActions","$children","at","resolve","removeShare","onPasswordChange","onPasswordProtectedByTalkChange","getShareTypeIcon","EmailIcon","_l","refInFor","preventDefault","apply","arguments","NcActionLink","NcActionText","viaFileTargetUrl","viaFolderName","basename","initiator","folder","SharingEntryInherited","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","findIndex","stopPropagation","NcPopover","NcDateTime","ClockIcon","expiryTime","timeFormat","dateStyle","timeStyle","toLocaleString","DropdownIcon","selectedOption","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","NcActionCheckbox","NcActionInput","NcActionSeparator","NcDialog","NcIconSvgWrapper","VueQrcode","Tune","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","PlusIcon","SharingEntryQuickShareSelect","ShareExpiryTime","mdiCheck","mdiContentCopy","shareCreationComplete","defaultExpirationDateEnabled","pending","_nc_files_sharing_sidebar_inline_actions","showQRCode","l10nOptions","escape","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","shareLink","actionsTooltip","copyLinkLabel","isPasswordPolicyEnabled","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","pushNewLinkShare","update","newShare","copyButton","prompt","onPasswordDisable","onPasswordSubmit","onMenuClose","onExpirationDateToggleUpdate","expirationDateChanged","event","onCancel","class","minLength","exec","iconSvg","SharingEntryLink","canLinkShare","hasLinkShares","hasShares","awaitForShare","$nextTick","showAsInternal","tooltip","hasStatus","SharingEntry","productName","theme","InfoIcon","NcCollectionList","SharingEntryInternal","SharingInherited","SharingInput","SharingLinkList","SharingList","SharingDetailsTab","SidebarTabExternalSection","SidebarTabExternalSectionLegacy","deleteEvent","expirationInterval","sharedWithMe","externalShares","legacySections","ShareTabSections","getSections","sections","_nc_files_sharing_sidebar_sections","projectsEnabled","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","hasExternalSections","sortedExternalSections","isSharedWithMe","isLinkSharingAllowed","capabilities","internalShareInputPlaceholder","externalShareInputPlaceholder","immediate","newValue","oldValue","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","orderBy","group","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","from","document","activeElement","classList","className","startsWith","menuId","closest","emptyContentWithSections","directives","rawName","active","view","rawFileInfo","dirname","etag","isEncrypted","isFavourited","favorite","mountType","Files","FileInfo","isDirectory","SharingTab"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/8309-8309.js.map.license b/dist/8309-8309.js.map.license deleted file mode 120000 index 43579952f21..00000000000 --- a/dist/8309-8309.js.map.license +++ /dev/null @@ -1 +0,0 @@ -8309-8309.js.license \ No newline at end of file diff --git a/dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs b/dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs deleted file mode 100644 index 48bcea0f067..00000000000 --- a/dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{b as g,p as y,q as v,c as p,u as o,o as n,K as h,w as _,g as V,t as k,s as x,r as M,j as d,e as f,F as q,C as w,E as U,G as j}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import{c as C}from"./index-CeZOua3E.chunk.mjs";import{a as E}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{g as K}from"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import{b as S}from"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import{N as A}from"./NcSelect-rH_0zphV-DIrEVY9H.chunk.mjs";import{N}from"./NcCheckboxRadioSwitch-ChNSuhe6-J_hhfCys.chunk.mjs";import{N as z}from"./NcPasswordField-DYF18Cdo-CDrhVNCN.chunk.mjs";import{_ as B}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{C as c,a as b}from"./types-CxkvAyaz.chunk.mjs";import{l as G}from"./logger-resIultJ.chunk.mjs";const P=g({__name:"ConfigurationEntry",props:y({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue");return(t,i)=>e.configOption.type!==o(c).Boolean?(n(),p(h(e.configOption.type===o(c).Password?o(z):o(B)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=l=>a.value=l),name:e.configKey,required:!(e.configOption.flags&o(b).Optional),label:e.configOption.value,title:e.configOption.tooltip},null,8,["modelValue","name","required","label","title"])):(n(),p(o(N),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=l=>a.value=l),type:"switch",title:e.configOption.tooltip},{default:_(()=>[V(k(e.configOption.value),1)]),_:1},8,["modelValue","title"]))}}),R=g({__name:"AuthMechanismRsa",props:y({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue"),t=M();x(t,()=>{t.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:l}=await C.post(K("/apps/files_external/ajax/public_key.php"),{keyLength:t.value});a.value.private_key=l.data.private_key,a.value.public_key=l.data.public_key}catch(l){G.error("Error generating RSA key pair",{error:l}),E(s("files_external","Error generating key pair"))}}return(l,m)=>(n(),d("div",null,[(n(!0),d(q,null,w(e.authMechanism.configuration,(r,u)=>U((n(),p(P,{key:r.value,modelValue:a.value[u],"onUpdate:modelValue":O=>a.value[u]=O,"config-key":u,"config-option":r},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[j,!(r.flags&o(b).Hidden)]])),128)),f(o(A),{modelValue:t.value,"onUpdate:modelValue":m[0]||(m[0]=r=>t.value=r),clearable:!1,"input-label":o(s)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","input-label"]),f(o(S),{disabled:!t.value,wide:"",onClick:i},{default:_(()=>[V(k(o(s)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),$=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{$ as A,P as _}; -//# sourceMappingURL=AuthMechanismRsa-DUqf4YPF.chunk.mjs.map diff --git a/dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs b/dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs new file mode 100644 index 00000000000..61c8f9a4ef9 --- /dev/null +++ b/dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs @@ -0,0 +1,2 @@ +import{b as g,p as y,q as v,c as p,u as o,o as n,K as h,w as _,g as V,t as b,s as x,r as K,j as d,e as f,F as M,C as q,E as w,G as U}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import{c as j}from"./index-CeZOua3E.chunk.mjs";import{a as C}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{g as E}from"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import{b as S}from"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import{N as A}from"./NcSelect-rH_0zphV-DIrEVY9H.chunk.mjs";import{N as L}from"./NcCheckboxRadioSwitch-ChNSuhe6-J_hhfCys.chunk.mjs";import{N}from"./NcPasswordField-DYF18Cdo-CDrhVNCN.chunk.mjs";import{_ as z}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{C as c,a as k}from"./types-CxkvAyaz.chunk.mjs";import{l as B}from"./logger-resIultJ.chunk.mjs";const P=g({__name:"ConfigurationEntry",props:y({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue");return(t,i)=>e.configOption.type!==o(c).Boolean?(n(),p(h(e.configOption.type===o(c).Password?o(N):o(z)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=l=>a.value=l),name:e.configKey,required:!(e.configOption.flags&o(k).Optional),label:e.configOption.value,title:e.configOption.tooltip},null,8,["modelValue","name","required","label","title"])):(n(),p(o(L),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=l=>a.value=l),type:"switch",title:e.configOption.tooltip},{default:_(()=>[V(b(e.configOption.value),1)]),_:1},8,["modelValue","title"]))}}),R=g({__name:"AuthMechanismRsa",props:y({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue"),t=K();x(t,()=>{t.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:l}=await j.post(E("/apps/files_external/ajax/public_key.php"),{keyLength:t.value});a.value.private_key=l.data.private_key,a.value.public_key=l.data.public_key}catch(l){B.error("Error generating RSA key pair",{error:l}),C(s("files_external","Error generating key pair"))}}return(l,m)=>(n(),d("div",null,[(n(!0),d(M,null,q(e.authMechanism.configuration,(r,u)=>w((n(),p(P,{key:r.value,modelValue:a.value[u],"onUpdate:modelValue":O=>a.value[u]=O,configKey:u,configOption:r},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[U,!(r.flags&o(k).Hidden)]])),128)),f(o(A),{modelValue:t.value,"onUpdate:modelValue":m[0]||(m[0]=r=>t.value=r),clearable:!1,inputLabel:o(s)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","inputLabel"]),f(o(S),{disabled:!t.value,wide:"",onClick:i},{default:_(()=>[V(b(o(s)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),$=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{$ as A,P as _}; +//# sourceMappingURL=AuthMechanismRsa-mz_2_HLA.chunk.mjs.map diff --git a/dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs.license b/dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs.license similarity index 100% rename from dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs.license rename to dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs.license diff --git a/dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs.map b/dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs.map similarity index 56% rename from dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs.map rename to dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs.map index d59e5dbe5dc..feee1798634 100644 --- a/dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs.map +++ b/dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AuthMechanismRsa-DUqf4YPF.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"i/BAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAOiCC,EAN3BJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,OAAA,iEACtBG,EAMwBF,EAAAQ,CAAA,EAAA,kBAJdX,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,OAAA,aACrB,IAAwB,CAArBU,EAAAC,EAAAX,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,mLChBvB,MAAMY,EAAab,EAA6CC,EAAA,YAAmB,EAM7Ea,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMiCE,SALE1B,EAAA,cAAc,cAAa,CAAtD2B,EAAcC,WADtBzB,EAMiC0B,EAAA,CAH/B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAArB,GAAAK,EAAA,MAAWgB,CAAS,EAAArB,EAC5B,aAAYqB,EACZ,gBAAeD,CAAA,8EAJN,CAAAG,EAAA,EAAAH,EAAa,MAAQ1B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDuB,EAKY9B,EAAA+B,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAN,GACf,UAAW,GACX,cAAaN,EAAAsB,CAAA,EAAC,iBAAA,UAAA,EACd,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,uCAEDQ,EAKW9B,EAAAgC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCf,EAAAsB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file +{"version":3,"file":"AuthMechanismRsa-mz_2_HLA.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"i/BAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAOiCC,EAN3BJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,OAAA,iEACtBG,EAMwBF,EAAAQ,CAAA,EAAA,kBAJdX,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,OAAA,aACrB,IAAwB,CAArBU,EAAAC,EAAAX,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,mLChBvB,MAAMY,EAAab,EAA6CC,EAAA,YAAmB,EAM7Ea,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMgCE,SALG1B,EAAA,cAAc,cAAa,CAAtD2B,EAAcC,WADtBzB,EAMgC0B,EAAA,CAH9B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAArB,GAAAK,EAAA,MAAWgB,CAAS,EAAArB,EAC5B,UAAAqB,EACA,aAAAD,CAAA,4EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ1B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDuB,EAKY9B,EAAA+B,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAN,GACf,UAAW,GACX,WAAYN,EAAAsB,CAAA,EAAC,iBAAA,UAAA,EACb,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,sCAEDQ,EAKW9B,EAAAgC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCf,EAAAsB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs.map.license b/dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs.map.license similarity index 100% rename from dist/AuthMechanismRsa-DUqf4YPF.chunk.mjs.map.license rename to dist/AuthMechanismRsa-mz_2_HLA.chunk.mjs.map.license diff --git a/dist/CredentialsDialog-BP3tMLcO.chunk.mjs b/dist/CredentialsDialog-BP3tMLcO.chunk.mjs new file mode 100644 index 00000000000..6f513569e27 --- /dev/null +++ b/dist/CredentialsDialog-BP3tMLcO.chunk.mjs @@ -0,0 +1,2 @@ +import{t}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{N as m}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{N as d}from"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import{N as p}from"./NcPasswordField-DYF18Cdo-CDrhVNCN.chunk.mjs";import{_ as c}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{b as g,c as f,o as h,w as x,e as s,u as e,r as n}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./index-xFugdZPW.chunk.mjs";import"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import"./mdi-BiMJjngH.chunk.mjs";import"./index-CeZOua3E.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcInputField-tt_Gi9ja-Cs0S2GF6.chunk.mjs";const $=g({__name:"CredentialsDialog",emits:["close"],setup(_){const o=n(""),r=n(""),u=[{label:t("files_external","Confirm"),type:"submit",variant:"primary"}];return(i,a)=>(h(),f(e(m),{buttons:u,class:"external-storage-auth",closeOnClickOutside:"","data-cy-external-storage-auth":"",isForm:"",name:e(t)("files_external","Storage credentials"),outTransition:"",onSubmit:a[2]||(a[2]=l=>i.$emit("close",{login:o.value,password:r.value})),"onUpdate:open":a[3]||(a[3]=l=>i.$emit("close"))},{default:x(()=>[s(e(d),{class:"external-storage-auth__header",text:e(t)("files_external","To access the storage, you need to provide the authentication credentials."),type:"info"},null,8,["text"]),s(e(c),{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),autofocus:"",class:"external-storage-auth__login","data-cy-external-storage-auth-dialog-login":"",label:e(t)("files_external","Login"),placeholder:e(t)("files_external","Enter the storage login"),minlength:"2",name:"login",required:""},null,8,["modelValue","label","placeholder"]),s(e(p),{modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=l=>r.value=l),class:"external-storage-auth__password","data-cy-external-storage-auth-dialog-password":"",label:e(t)("files_external","Password"),placeholder:e(t)("files_external","Enter the storage password"),name:"password",required:""},null,8,["modelValue","label","placeholder"])]),_:1},8,["name"]))}});export{$ as default}; +//# sourceMappingURL=CredentialsDialog-BP3tMLcO.chunk.mjs.map diff --git a/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs.license b/dist/CredentialsDialog-BP3tMLcO.chunk.mjs.license similarity index 100% rename from dist/CredentialsDialog-CBvj0Kl2.chunk.mjs.license rename to dist/CredentialsDialog-BP3tMLcO.chunk.mjs.license diff --git a/dist/CredentialsDialog-BP3tMLcO.chunk.mjs.map b/dist/CredentialsDialog-BP3tMLcO.chunk.mjs.map new file mode 100644 index 00000000000..bc81eb21155 --- /dev/null +++ b/dist/CredentialsDialog-BP3tMLcO.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"CredentialsDialog-BP3tMLcO.chunk.mjs","sources":["../build/frontend/apps/files_external/src/views/CredentialsDialog.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["login","ref","password","dialogButtons","t","_createBlock","_unref","NcDialog","_cache","$event","$emit","_createVNode","NcNoteCard","NcTextField","NcPasswordField"],"mappings":"kvBAiBA,MAAMA,EAAQC,EAAI,EAAE,EACdC,EAAWD,EAAI,EAAE,EAEjBE,EAA0D,CAAC,CAChE,MAAOC,EAAE,iBAAkB,SAAS,EACpC,KAAM,SACN,QAAS,SAAA,CACT,oBAIAC,EAqCWC,EAAAC,CAAA,EAAA,CApCT,QAASJ,EACV,MAAM,wBACN,oBAAA,GACA,gCAAA,GACA,OAAA,GACC,KAAMG,EAAAF,CAAA,EAAC,iBAAA,qBAAA,EACR,cAAA,GACC,SAAMI,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEC,EAAAA,MAAK,QAAA,CAAA,MAAYV,EAAA,eAAOE,EAAA,MAAQ,GACxC,+BAAaQ,EAAAA,MAAK,OAAA,EAAA,aAEnB,IAGe,CAHfC,EAGeL,EAAAM,CAAA,EAAA,CAFd,MAAM,gCACL,KAAMN,EAAAF,CAAA,EAAC,iBAAA,4EAAA,EACR,KAAK,MAAA,mBAGNO,EASYL,EAAAO,CAAA,EAAA,YARFb,EAAA,2CAAAA,EAAK,MAAAS,GACd,UAAA,GACA,MAAM,+BACN,6CAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,OAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,yBAAA,EACf,UAAU,IACV,KAAK,QACL,SAAA,EAAA,+CAGDO,EAOYL,EAAAQ,CAAA,EAAA,YANFZ,EAAA,2CAAAA,EAAQ,MAAAO,GACjB,MAAM,kCACN,gDAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,UAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,4BAAA,EACf,KAAK,WACL,SAAA,EAAA"} \ No newline at end of file diff --git a/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs.map.license b/dist/CredentialsDialog-BP3tMLcO.chunk.mjs.map.license similarity index 100% rename from dist/CredentialsDialog-CBvj0Kl2.chunk.mjs.map.license rename to dist/CredentialsDialog-BP3tMLcO.chunk.mjs.map.license diff --git a/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs b/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs deleted file mode 100644 index 9a81c0e1ea1..00000000000 --- a/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{t}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{N as m}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{N as d}from"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import{N as p}from"./NcPasswordField-DYF18Cdo-CDrhVNCN.chunk.mjs";import{_ as c}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{b as g,c as f,o as h,w as x,e as s,u as e,r as n}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./index-xFugdZPW.chunk.mjs";import"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import"./mdi-BiMJjngH.chunk.mjs";import"./index-CeZOua3E.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcInputField-tt_Gi9ja-Cs0S2GF6.chunk.mjs";const D=g({__name:"CredentialsDialog",emits:["close"],setup(_){const o=n(""),r=n(""),u=[{label:t("files_external","Confirm"),type:"submit",variant:"primary"}];return(i,a)=>(h(),f(e(m),{buttons:u,class:"external-storage-auth","close-on-click-outside":"","data-cy-external-storage-auth":"","is-form":"",name:e(t)("files_external","Storage credentials"),"out-transition":"",onSubmit:a[2]||(a[2]=l=>i.$emit("close",{login:o.value,password:r.value})),"onUpdate:open":a[3]||(a[3]=l=>i.$emit("close"))},{default:x(()=>[s(e(d),{class:"external-storage-auth__header",text:e(t)("files_external","To access the storage, you need to provide the authentication credentials."),type:"info"},null,8,["text"]),s(e(c),{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),autofocus:"",class:"external-storage-auth__login","data-cy-external-storage-auth-dialog-login":"",label:e(t)("files_external","Login"),placeholder:e(t)("files_external","Enter the storage login"),minlength:"2",name:"login",required:""},null,8,["modelValue","label","placeholder"]),s(e(p),{modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=l=>r.value=l),class:"external-storage-auth__password","data-cy-external-storage-auth-dialog-password":"",label:e(t)("files_external","Password"),placeholder:e(t)("files_external","Enter the storage password"),name:"password",required:""},null,8,["modelValue","label","placeholder"])]),_:1},8,["name"]))}});export{D as default}; -//# sourceMappingURL=CredentialsDialog-CBvj0Kl2.chunk.mjs.map diff --git a/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs.map b/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs.map deleted file mode 100644 index 256c75bea34..00000000000 --- a/dist/CredentialsDialog-CBvj0Kl2.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CredentialsDialog-CBvj0Kl2.chunk.mjs","sources":["../build/frontend/apps/files_external/src/views/CredentialsDialog.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["login","ref","password","dialogButtons","t","_createBlock","_unref","NcDialog","_cache","$event","$emit","_createVNode","NcNoteCard","NcTextField","NcPasswordField"],"mappings":"kvBAiBA,MAAMA,EAAQC,EAAI,EAAE,EACdC,EAAWD,EAAI,EAAE,EAEjBE,EAA0D,CAAC,CAChE,MAAOC,EAAE,iBAAkB,SAAS,EACpC,KAAM,SACN,QAAS,SAAA,CACT,oBAIAC,EAqCWC,EAAAC,CAAA,EAAA,CApCT,QAASJ,EACV,MAAM,wBACN,yBAAA,GACA,gCAAA,GACA,UAAA,GACC,KAAMG,EAAAF,CAAA,EAAC,iBAAA,qBAAA,EACR,iBAAA,GACC,SAAMI,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEC,EAAAA,MAAK,QAAA,CAAA,MAAYV,EAAA,eAAOE,EAAA,MAAQ,GACxC,+BAAaQ,EAAAA,MAAK,OAAA,EAAA,aAEnB,IAGe,CAHfC,EAGeL,EAAAM,CAAA,EAAA,CAFd,MAAM,gCACL,KAAMN,EAAAF,CAAA,EAAC,iBAAA,4EAAA,EACR,KAAK,MAAA,mBAGNO,EASYL,EAAAO,CAAA,EAAA,YARFb,EAAA,2CAAAA,EAAK,MAAAS,GACd,UAAA,GACA,MAAM,+BACN,6CAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,OAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,yBAAA,EACf,UAAU,IACV,KAAK,QACL,SAAA,EAAA,+CAGDO,EAOYL,EAAAQ,CAAA,EAAA,YANFZ,EAAA,2CAAAA,EAAQ,MAAAO,GACjB,MAAM,kCACN,gDAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,UAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,4BAAA,EACf,KAAK,WACL,SAAA,EAAA"} \ No newline at end of file diff --git a/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs b/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs new file mode 100644 index 00000000000..bed2e0dbcbf --- /dev/null +++ b/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs @@ -0,0 +1,26 @@ +import{N as te,u as oe,e as j,a as Y}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{a as O,g as se,e as N}from"./index-Bndk0DrU.chunk.mjs";import{t as c,a as P}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{N as ne}from"./mdi-BiMJjngH.chunk.mjs";import{h as re,P as Z}from"./index-DM8VAd6G.chunk.mjs";import{a as E,l as ae,j as le,e as ce}from"./index-xFugdZPW.chunk.mjs";import{e as de,g as J,d as ue}from"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import{a as M,N as ve,_ as me}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BsGaeMDT.chunk.mjs";import{N as pe}from"./NcAvatar-xQb0quUq-C71Wo6rS.chunk.mjs";import{D as fe,N as he,s as ge}from"./TrayArrowDown-CXgXqaQ7.chunk.mjs";import{j as m,o as a,k as C,l as b,t as _,y as G,b as R,r as A,c as V,w as f,z as h,u as d,g as T,e as S,L as X,v as be,a5 as Q,m as B,M as ee,s as we,X as ye,F as _e,C as Ce}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import{P as ke}from"./PencilOutline-DoqPbti1.chunk.mjs";import{D as Se,_ as Ve}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{c as He}from"./index-CeZOua3E.chunk.mjs";import{g as ze}from"./dav-BXqaeStw.chunk.mjs";import"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./colors-DhRGyJCn-DAL6YfJ7.chunk.mjs";import"./NcInputField-tt_Gi9ja-Cs0S2GF6.chunk.mjs";import"./index-wRuRkMbL.chunk.mjs";const Le={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$e=["aria-hidden","aria-label"],xe=["fill","width","height"],Ae={d:"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z"},De={key:0};function Ee(e,t,i,n,v,r){return a(),m("span",G(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon backup-restore-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Ae,[i.title?(a(),m("title",De,_(i.title),1)):b("",!0)])],8,xe))],16,$e)}const Te=E(Le,[["render",Ee]]),Ie={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ne=["aria-hidden","aria-label"],Me=["fill","width","height"],Be={d:"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z"},Oe={key:0};function Pe(e,t,i,n,v,r){return a(),m("span",G(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon file-compare-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Be,[i.title?(a(),m("title",Oe,_(i.title),1)):b("",!0)])],8,Me))],16,Ne)}const Re=E(Ie,[["render",Pe]]),Ue={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Fe=["aria-hidden","aria-label"],qe=["fill","width","height"],Ke={d:"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8"},We={key:0};function je(e,t,i,n,v,r){return a(),m("span",G(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon image-off-outline-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Ke,[i.title?(a(),m("title",We,_(i.title),1)):b("",!0)])],8,qe))],16,Fe)}const Ye=E(Ue,[["render",je]]),Ze={key:0,class:"version__image"},Je=["src"],Xe={key:2,class:"version__image"},Ge={class:"version__info"},Qe=["title"],ei={key:1,class:"version__info","data-cy-files-version-author-name":""},ii={key:0},ti=["title"],oi={class:"version__info version__info__subline"},si=R({__name:"VersionEntry",props:{version:{},node:{},isCurrent:{type:Boolean},isFirstVersion:{type:Boolean},loadPreview:{type:Boolean},canView:{type:Boolean},canCompare:{type:Boolean}},emits:["click","compare","restore","delete","labelUpdateRequest"],setup(e,{emit:t}){const i=e,n=t,v=A(!1),r=A(!1),l=A(ae("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}})),H=h(()=>re(i.version.size)),p=h(()=>{const y=i.version.label??"";return i.isCurrent?y===""?c("files_versions","Current version"):`${y} (${c("files_versions","Current version")})`:i.isFirstVersion&&y===""?c("files_versions","Initial version"):y}),w=h(()=>!i.version.author||!i.version.authorName?"":i.version.author===O()?.uid?c("files_versions","You"):i.version.authorName??i.version.author),s=h(()=>new Date(i.version.mtime).toLocaleString([P(),P().split("-")[0]],{timeStyle:"long",dateStyle:"long"})),k=h(()=>i.isCurrent?i.node.source:de()+i.version.url),z=h(()=>l.value.files.version_labeling===!0),L=h(()=>l.value.files.version_deletion===!0),F=h(()=>$(i.node,Z.DELETE)),I=h(()=>$(i.node,Z.UPDATE)),q=h(()=>!((i.node.permissions&Z.READ)===0||i.node.attributes["mount-type"]==="shared"&&i.node.attributes["share-attributes"]&&(JSON.parse(i.node.attributes["share-attributes"]).find(y=>y.scope==="permissions"&&y.key==="download")||{})?.value===!1));function K(){n("labelUpdateRequest")}function W(){n("restore",i.version)}async function o(){await X(),await X(),n("delete",i.version)}function u(y){i.canView&&y.preventDefault(),n("click",i.version)}function g(){if(!i.canView)throw new Error("Cannot compare version of this file");n("compare",i.version)}function $(y,x){return(y.permissions&x)!==0}return(y,x)=>(a(),V(d(he),{class:"version",forceDisplayActions:!0,"actions-aria-label":d(c)("files_versions","Actions for version from {versionHumanExplicitDate}",{versionHumanExplicitDate:s.value}),"data-files-versions-version":e.version.fileVersion,href:k.value,onClick:u},{icon:f(()=>[e.loadPreview||v.value?e.version.previewUrl&&!r.value?(a(),m("img",{key:1,src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy",class:"version__image",onLoad:x[0]||(x[0]=ie=>v.value=!0),onError:x[1]||(x[1]=ie=>r.value=!0)},null,40,Je)):(a(),m("div",Xe,[S(Ye,{size:20})])):(a(),m("div",Ze))]),name:f(()=>[C("div",Ge,[p.value?(a(),m("div",{key:0,class:"version__info__label","data-cy-files-version-label":"",title:p.value},_(p.value),9,Qe)):b("",!0),w.value?(a(),m("div",ei,[p.value?(a(),m("span",ii,"•")):b("",!0),S(d(pe),{class:"avatar",user:e.version.author??void 0,size:20,disableMenu:"",disableTooltip:"",hideStatus:""},null,8,["user"]),C("div",{class:"version__info__author_name",title:w.value},_(w.value),9,ti)])):b("",!0)])]),subname:f(()=>[C("div",oi,[S(d(me),{class:"version__info__date",relativeTime:"short",timestamp:e.version.mtime},null,8,["timestamp"]),x[2]||(x[2]=C("span",null,"•",-1)),C("span",null,_(H.value),1)])]),actions:f(()=>[z.value&&I.value?(a(),V(d(M),{key:0,"data-cy-files-versions-version-action":"label",closeAfterClick:!0,onClick:K},{icon:f(()=>[S(ke,{size:22})]),default:f(()=>[T(" "+_(e.version.label===""?d(c)("files_versions","Name this version"):d(c)("files_versions","Edit version name")),1)]),_:1})):b("",!0),!e.isCurrent&&e.canView&&e.canCompare?(a(),V(d(M),{key:1,"data-cy-files-versions-version-action":"compare",closeAfterClick:!0,onClick:g},{icon:f(()=>[S(Re,{size:22})]),default:f(()=>[T(" "+_(d(c)("files_versions","Compare to current version")),1)]),_:1})):b("",!0),!e.isCurrent&&I.value?(a(),V(d(M),{key:2,"data-cy-files-versions-version-action":"restore",closeAfterClick:!0,onClick:W},{icon:f(()=>[S(Te,{size:22})]),default:f(()=>[T(" "+_(d(c)("files_versions","Restore version")),1)]),_:1})):b("",!0),q.value?(a(),V(d(ve),{key:3,"data-cy-files-versions-version-action":"download",href:k.value,closeAfterClick:!0,download:k.value},{icon:f(()=>[S(fe,{size:22})]),default:f(()=>[T(" "+_(d(c)("files_versions","Download version")),1)]),_:1},8,["href","download"])):b("",!0),!e.isCurrent&&L.value&&F.value?(a(),V(d(M),{key:4,"data-cy-files-versions-version-action":"delete",closeAfterClick:!0,onClick:o},{icon:f(()=>[S(Se,{size:22})]),default:f(()=>[T(" "+_(d(c)("files_versions","Delete version")),1)]),_:1})):b("",!0)]),_:1},8,["actions-aria-label","data-files-versions-version","href"]))}}),ni=E(si,[["__scopeId","data-v-037e7d96"]]),ri={class:"version-label-modal__info"},ai=R({__name:"VersionLabelDialog",props:{open:{type:Boolean,default:!1},label:{type:String,default:""}},emits:["update:open","update:label"],setup(e,{emit:t}){const i=e,n=t,v=be("labelInput"),r=A(""),l=h(()=>{const p=[];return i.label.trim()===""?p.push({label:c("files_versions","Cancel")}):p.push({label:c("files_versions","Remove version name"),type:"reset",variant:"error",callback:()=>{H("")}}),[...p,{label:c("files_versions","Save version name"),icon:ge,type:"submit",variant:"primary"}]});Q(()=>{r.value=i.label??""}),Q(()=>{i.open&&X(()=>v.value?.focus()),r.value=i.label});function H(p){n("update:label",p)}return(p,w)=>(a(),V(d(te),{buttons:l.value,contentClasses:"version-label-modal",isForm:"",open:e.open,size:"normal",name:d(c)("files_versions","Name this version"),"onUpdate:open":w[1]||(w[1]=s=>p.$emit("update:open",s)),onSubmit:w[2]||(w[2]=s=>H(r.value))},{default:f(()=>[S(d(Ve),{ref_key:"labelInput",ref:v,modelValue:r.value,"onUpdate:modelValue":w[0]||(w[0]=s=>r.value=s),class:"version-label-modal__input",label:d(c)("files_versions","Version name"),placeholder:d(c)("files_versions","Version name")},null,8,["modelValue","label","placeholder"]),C("p",ri,_(d(c)("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.")),1)]),_:1},8,["buttons","open","name"]))}}),li=E(ai,[["__scopeId","data-v-0955585b"]]),D=se().setApp("files_version").detectUser().build(),ci=R({name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},emits:["needContent"],data(){return{scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}},computed:{visibleSections(){D.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,v=0;const r=this.sections.map(s=>(v+=this.headerHeight,{...s,rows:s.rows.reduce((k,z)=>{n=v,v+=z.height;let L=0;return vi&&(L=(n-i)/e),L>this.renderDistance?k:[...k,{...z,distance:L}]},[])})).filter(s=>s.rows.length>0),l=r.flatMap(({rows:s})=>s).flatMap(({items:s})=>s),H=this._rowIdToKeyMap;l.forEach(s=>s.key=H[s.id]);const p=l.map(({key:s})=>s).filter(s=>s!==void 0),w=Object.values(H).filter(s=>!p.includes(s));return l.filter(({key:s})=>s===void 0).forEach(s=>s.key=w.pop()??Math.random().toString(36).substr(2)),this._rowIdToKeyMap=l.reduce((s,{id:k,key:z})=>({...s,[`${k}`]:z}),{}),r},totalHeight(){return this.sections.map(e=>this.headerHeight+e.height).reduce((e,t)=>e+t,0)+0},paddingTop(){if(this.visibleSections.length===0)return 0;let e=0;for(const t of this.sections){if(t.key!==this.visibleSections[0].rows[0].sectionKey){e+=this.headerHeight+t.height;continue}for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}return e},rowsContainerStyle(){return{height:`${this.totalHeight}px`,paddingTop:`${this.paddingTop}px`}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return D.debug("[VirtualScrolling] Computing container"),this.containerElement!==null?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){D.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("needContent")},visibleSections(){this.isNearBottom&&this.$emit("needContent")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key!==e){t+=this.headerHeight+i.height;continue}break}D.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target===this.container&&(this.containerHeight=i.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=i.height)}}),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeUnmount(){this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),this.resizeObserver?.disconnect(),this.container.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){this._onScrollHandle??=requestAnimationFrame(()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})},updateContainerSize(){this.containerHeight=window.innerHeight}}}),di={key:0,ref:"container",class:"vs-container"};function ui(e,t,i,n,v,r){return!e.useWindow&&e.containerElement===null?(a(),m("div",di,[C("div",{ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[B(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),B(e.$slots,"loader",{},void 0,!0)],4)],512)):(a(),m("div",{key:1,ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[B(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),B(e.$slots,"loader",{},void 0,!0)],4))}const vi=E(ci,[["render",ui],["__scopeId","data-v-0a27da21"]]),mi=` + + + + + + + + + + +`,U=ze();async function pi(e){const t=`/versions/${O()?.uid}/versions/${e.fileid}`;try{const i=(await U.getDirectoryContents(t,{data:mi,details:!0})).data.filter(({mime:r})=>r!=="").map(r=>hi(r,e)),n=new Set(i.map(r=>String(r.author))),v=await He.post(J("/displaynames"),{users:[...n]});for(const r of i){const l=v.data.users[r.author??""];l&&(r.authorName=l)}return i}catch(i){throw D.error("Could not fetch version",{exception:i}),i}}async function fi(e){try{D.debug("Restoring version",{url:e.url}),await U.moveFile(`/versions/${O()?.uid}/versions/${e.fileId}/${e.fileVersion}`,`/versions/${O()?.uid}/restore/target`)}catch(t){throw D.error("Could not restore version",{exception:t}),t}}function hi(e,t){const i=Date.parse(e.lastmod);let n="";return i===t.mtime?.getTime()?n=J("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1",{fileId:t.fileid,fileEtag:t.attributes.etag}):n=J("/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1",{file:t.path,fileVersion:e.basename}),{fileId:t.fileid.toString(),label:e.props["version-label"]?String(e.props["version-label"]):"",author:e.props["version-author"]?String(e.props["version-author"]):null,authorName:null,filename:e.filename,basename:new Date(i).toLocaleString([P(),P().split("-")[0]],{timeStyle:"long",dateStyle:"medium"}),mime:e.mime,etag:`${e.props.getetag}`,size:e.size,type:e.type,mtime:i,permissions:"R",previewUrl:n,url:le("/remote.php/dav",e.filename),source:ue("dav")+ce(e.filename),fileVersion:e.basename}}async function gi(e,t){return await U.customRequest(e.filename,{method:"PROPPATCH",data:` + + + + ${t} + + + `})}async function bi(e){await U.deleteFile(e.filename)}const wi={key:0,class:"versions-tab__container"},yi=["aria-label"],Ri=R({__name:"FilesVersionsSidebarTab",props:{active:{type:Boolean},node:{},folder:{},view:{}},setup(e){const t=e,i=oe(),n=A([]),v=A(!1),r=A(!1),l=A(null);we(ye(()=>t.node),async()=>{if(t.node)try{v.value=!0,n.value=await pi(t.node)}finally{v.value=!1}},{immediate:!0});const H=h(()=>t.node?.mtime?.getTime()??0),p=h(()=>[...n.value].sort((o,u)=>t.node?o.mtime===t.node.mtime?.getTime()?-1:u.mtime===t.node.mtime?.getTime()?1:u.mtime-o.mtime:0)),w=h(()=>[{key:"versions",rows:p.value.map(o=>({key:o.mtime.toString(),height:68,sectionKey:"versions",items:[{id:o.mtime.toString(),version:o}]})),height:68*p.value.length}]),s=h(()=>n.value.map(o=>o.mtime).reduce((o,u)=>Math.min(o,u))),k=h(()=>t.node?window.OCA.Viewer?.mimetypes?.includes(t.node?.mime):!1),z=h(()=>!i.value&&window.OCA.Viewer?.mimetypesCompare?.includes(t.node?.mime));async function L(o){if(!t.node)return;const u=t.node.clone();u.attributes.etag=o.etag,u.size=o.size,u.mtime=new Date(o.mtime);const g={preventDefault:!1,node:u,version:o};if(N("files_versions:restore:requested",g),!g.preventDefault)try{await fi(o),o.label?j(c("files_versions",`${o.label} restored`)):o.mtime===s.value?j(c("files_versions","Initial version restored")):j(c("files_versions","Version restored")),N("files:node:updated",u),N("files_versions:restore:restored",{node:u,version:o})}catch{Y(c("files_versions","Could not restore version")),N("files_versions:restore:failed",o)}}function F(o){r.value=!0,l.value=o}async function I(o){if(l.value===null)throw new Error("editedVersion should be set at that point");const u=l.value.label;l.value.label=o,r.value=!1;try{await gi(l.value,o),l.value=null}catch(g){l.value.label=u,Y(c("files_versions","Could not set version label")),D.error("Could not set version label",{exception:g})}}async function q(o){const u=n.value.indexOf(o);n.value.splice(u,1);try{await bi(o)}catch{n.value.push(o),Y(c("files_versions","Could not delete version"))}}function K(o){if(t.node!==null){if(o.mtime===t.node?.mtime?.getTime()){window.OCA.Viewer.open({path:t.node.path});return}window.OCA.Viewer.open({fileInfo:{...o,filename:o.filename,previewUrl:void 0},enableSidebar:!1})}}function W(o){const u=n.value.map(g=>({...g,previewUrl:void 0}));window.OCA.Viewer.compare({path:t.node.path},u.find(g=>g.source===o.source))}return(o,u)=>e.node?(a(),m("div",wi,[S(vi,{sections:w.value,headerHeight:0},{default:f(({visibleSections:g})=>[C("ul",{"aria-label":d(c)("files_versions","File versions"),"data-files-versions-versions-list":""},[g.length===1?(a(!0),m(_e,{key:0},Ce(g[0].rows,$=>(a(),V(ni,{key:$.items[0].version.mtime,canView:k.value,canCompare:z.value,loadPreview:e.active,version:$.items[0].version,node:e.node,isCurrent:$.items[0].version.mtime===H.value,isFirstVersion:$.items[0].version.mtime===s.value,onClick:K,onCompare:W,onRestore:L,onLabelUpdateRequest:y=>F($.items[0].version),onDelete:q},null,8,["canView","canCompare","loadPreview","version","node","isCurrent","isFirstVersion","onLabelUpdateRequest"]))),128)):b("",!0)],8,yi)]),loader:f(()=>[v.value?(a(),V(d(ne),{key:0,class:"files-list-viewer__loader"})):b("",!0)]),_:1},8,["sections"]),l.value?(a(),V(li,{key:0,open:r.value,"onUpdate:open":u[0]||(u[0]=g=>r.value=g),label:l.value.label,"onUpdate:label":I},null,8,["open","label"])):b("",!0)])):b("",!0)}});export{Ri as default}; +//# sourceMappingURL=FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.map diff --git a/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.license b/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.license similarity index 100% rename from dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.license rename to dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.license diff --git a/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.map b/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.map new file mode 100644 index 00000000000..7959bd91dda --- /dev/null +++ b/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs","sources":["../node_modules/vue-material-design-icons/BackupRestore.vue","../node_modules/vue-material-design-icons/FileCompare.vue","../node_modules/vue-material-design-icons/ImageOffOutline.vue","../build/frontend/apps/files_versions/src/components/VersionEntry.vue","../build/frontend/apps/files_versions/src/components/VersionLabelDialog.vue","../build/frontend/apps/files_versions/src/utils/logger.ts","../build/frontend/apps/files_versions/src/components/VirtualScrolling.vue","../build/frontend/apps/files_versions/src/utils/davRequest.ts","../build/frontend/apps/files_versions/src/utils/versions.ts","../build/frontend/apps/files_versions/src/views/FilesVersionsSidebarTab.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getClient } from '@nextcloud/files/dav'\nimport { getCanonicalLocale } from '@nextcloud/l10n'\nimport { encodePath, join } from '@nextcloud/paths'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport davRequest from '../utils/davRequest.ts'\nimport logger from '../utils/logger.ts'\n\nexport interface Version {\n\tfileId: string // The id of the file associated to the version.\n\tlabel: string // 'Current version' or ''\n\tauthor: string | null // UID for the author of the version\n\tauthorName: string | null // Display name of the author\n\tfilename: string // File name relative to the version DAV endpoint\n\tbasename: string // A base name generated from the mtime\n\tmime: string // Empty for the current version, else the actual mime type of the version\n\tetag: string // Empty for the current version, else the actual mime type of the version\n\tsize: number // File size in bytes\n\ttype: string // 'file'\n\tmtime: number // Version creation date as a timestamp\n\tpermissions: string // Only readable: 'R'\n\tpreviewUrl: string // Preview URL of the version\n\turl: string // Download URL of the version\n\tsource: string // The WebDAV endpoint of the resource\n\tfileVersion: string | null // The version id, null for the current version\n}\n\nconst client = getClient()\n\n/**\n * Get file versions for a given node\n *\n * @param node - The node to fetch versions for\n */\nexport async function fetchVersions(node: INode): Promise {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${node.fileid}`\n\n\ttry {\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t}) as ResponseDataDetailed\n\n\t\tconst versions = response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map((version) => formatVersion(version as Required, node))\n\n\t\tconst authorIds = new Set(versions.map((version) => String(version.author)))\n\t\tconst authors = await axios.post(generateUrl('/displaynames'), { users: [...authorIds] })\n\n\t\tfor (const version of versions) {\n\t\t\tconst author = authors.data.users[version.author ?? '']\n\t\t\tif (author) {\n\t\t\t\tversion.authorName = author\n\t\t\t}\n\t\t}\n\n\t\treturn versions\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param version - The version to restore\n */\nexport async function restoreVersion(version: Version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`,\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param version - The version data from WebDAV\n * @param node - The original node\n */\nfunction formatVersion(version: Required, node: INode): Version {\n\tconst mtime = Date.parse(version.lastmod)\n\tlet previewUrl = ''\n\n\tif (mtime === node.mtime?.getTime()) { // Version is the current one\n\t\tpreviewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n\t\t\tfileId: node.fileid,\n\t\t\tfileEtag: node.attributes.etag,\n\t\t})\n\t} else {\n\t\tpreviewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n\t\t\tfile: node.path,\n\t\t\tfileVersion: version.basename,\n\t\t})\n\t}\n\n\treturn {\n\t\tfileId: node.fileid!.toString(),\n\t\t// If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n\t\tlabel: version.props['version-label'] ? String(version.props['version-label']) : '',\n\t\tauthor: version.props['version-author'] ? String(version.props['version-author']) : null,\n\t\tauthorName: null,\n\t\tfilename: version.filename,\n\t\tbasename: new Date(mtime).toLocaleString(\n\t\t\t[getCanonicalLocale(), getCanonicalLocale().split('-')[0]!],\n\t\t\t{\n\t\t\t\ttimeStyle: 'long',\n\t\t\t\tdateStyle: 'medium',\n\t\t\t},\n\t\t),\n\t\tmime: version.mime,\n\t\tetag: `${version.props.getetag}`,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime,\n\t\tpermissions: 'R',\n\t\tpreviewUrl,\n\t\turl: join('/remote.php/dav', version.filename),\n\t\tsource: generateRemoteUrl('dav') + encodePath(version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * Set version label\n *\n * @param version - The version to set the label for\n * @param newLabel - The new label\n */\nexport async function setVersionLabel(version: Version, newLabel: string) {\n\treturn await client.customRequest(\n\t\tversion.filename,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n\t\t},\n\t)\n}\n\n/**\n * Delete version\n *\n * @param version - The version to delete\n */\nexport async function deleteVersion(version: Version) {\n\tawait client.deleteFile(version.filename)\n}\n","\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","props","__props","emit","__emit","previewLoaded","ref","previewErrored","capabilities","loadState","humanReadableSize","computed","formatFileSize","versionLabel","label","t","versionAuthor","getCurrentUser","versionHumanExplicitDate","getCanonicalLocale","downloadURL","getRootUrl","enableLabeling","enableDeletion","hasDeletePermissions","hasPermission","Permission","hasUpdatePermissions","isDownloadable","attribute","labelUpdate","restoreVersion","deleteVersion","nextTick","click","event","compareVersion","node","permission","_createBlock","_unref","NcListItem","_createVNode","ImageOffOutline","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","NcAvatar","_hoisted_8","_hoisted_9","NcDateTime","NcActionButton","Pencil","_createTextVNode","FileCompare","BackupRestore","NcActionLink","Download","Delete","labelInput","useTemplateRef","internalLabel","dialogButtons","buttons","setVersionLabel","svgCheck","watchEffect","NcDialog","$emit","NcTextField","_toDisplayString","logger","getLoggerBuilder","_sfc_main$1","defineComponent","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","section","visibleRows","row","distance","visibleItems","rows","items","rowIdToKeyMap","item","usedTokens","key","unusedTokens","finalMapping","id","totalHeight","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","entries","entry","cr","_normalizeStyle","_renderSlot","davRequest","client","getClient","fetchVersions","path","versions","mime","version","formatVersion","authorIds","authors","axios","generateUrl","author","exception","mtime","previewUrl","join","generateRemoteUrl","encodePath","newLabel","isMobile","useIsMobile","loading","showVersionLabelForm","editedVersion","watch","toRef","currentVersionMtime","orderedVersions","a","b","sections","initialVersionMtime","canView","canCompare","handleRestore","restoredNode","restoreStartedEventState","showSuccess","showError","handleLabelUpdateRequest","handleLabelUpdate","oldLabel","handleDelete","index","openVersion","_versions","v","VirtualScrolling","_withCtx","_Fragment","_renderList","VersionEntry","NcLoadingIcon","VersionLabelDialog"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.map.license b/dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.map.license similarity index 100% rename from dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.map.license rename to dist/FilesVersionsSidebarTab-B6IVqJWe.chunk.mjs.map.license diff --git a/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs b/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs deleted file mode 100644 index 9095f0bf959..00000000000 --- a/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs +++ /dev/null @@ -1,26 +0,0 @@ -import{N as te,u as oe,e as W,a as Y}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{a as B,g as se,e as M}from"./index-Bndk0DrU.chunk.mjs";import{t as c,a as P}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{N as ne}from"./mdi-BiMJjngH.chunk.mjs";import{h as re,P as Z}from"./index-DM8VAd6G.chunk.mjs";import{a as D,l as ae,j as le,e as ce}from"./index-xFugdZPW.chunk.mjs";import{e as de,g as J,d as ue}from"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import{a as N,N as ve,_ as me}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BsGaeMDT.chunk.mjs";import{N as pe}from"./NcAvatar-xQb0quUq-C71Wo6rS.chunk.mjs";import{D as fe,N as he,s as ge}from"./TrayArrowDown-CXgXqaQ7.chunk.mjs";import{j as m,o as a,k,l as b,t as _,y as G,b as R,r as A,c as S,w as f,z as h,u as d,g as I,e as V,L as X,v as be,a5 as Q,m as O,M as ee,s as we,X as ye,F as _e,C as ke}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import{P as Ce}from"./PencilOutline-DoqPbti1.chunk.mjs";import{D as Ve,_ as Se}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{c as He}from"./index-CeZOua3E.chunk.mjs";import{g as ze}from"./dav-BXqaeStw.chunk.mjs";import"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./colors-DhRGyJCn-DAL6YfJ7.chunk.mjs";import"./NcInputField-tt_Gi9ja-Cs0S2GF6.chunk.mjs";import"./index-wRuRkMbL.chunk.mjs";const Le={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$e=["aria-hidden","aria-label"],xe=["fill","width","height"],Ae={d:"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z"},Ee={key:0};function De(e,t,i,n,v,r){return a(),m("span",G(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon backup-restore-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[k("path",Ae,[i.title?(a(),m("title",Ee,_(i.title),1)):b("",!0)])],8,xe))],16,$e)}const Ie=D(Le,[["render",De]]),Te={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Me=["aria-hidden","aria-label"],Ne=["fill","width","height"],Oe={d:"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z"},Be={key:0};function Pe(e,t,i,n,v,r){return a(),m("span",G(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon file-compare-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[k("path",Oe,[i.title?(a(),m("title",Be,_(i.title),1)):b("",!0)])],8,Ne))],16,Me)}const Re=D(Te,[["render",Pe]]),Ue={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Fe=["aria-hidden","aria-label"],qe=["fill","width","height"],Ke={d:"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8"},je={key:0};function We(e,t,i,n,v,r){return a(),m("span",G(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon image-off-outline-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[k("path",Ke,[i.title?(a(),m("title",je,_(i.title),1)):b("",!0)])],8,qe))],16,Fe)}const Ye=D(Ue,[["render",We]]),Ze={key:0,class:"version__image"},Je=["src"],Xe={key:2,class:"version__image"},Ge={class:"version__info"},Qe=["title"],ei={key:1,class:"version__info","data-cy-files-version-author-name":""},ii={key:0},ti=["title"],oi={class:"version__info version__info__subline"},si=R({__name:"VersionEntry",props:{version:{type:Object,required:!0},node:{type:Object,required:!0},isCurrent:{type:Boolean,default:!1},isFirstVersion:{type:Boolean,default:!1},loadPreview:{type:Boolean,default:!1},canView:{type:Boolean,default:!1},canCompare:{type:Boolean,default:!1}},emits:["click","compare","restore","delete","label-update-request"],setup(e,{emit:t}){const i=e,n=t,v=A(!1),r=A(!1),l=A(ae("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}})),H=h(()=>re(i.version.size)),p=h(()=>{const y=i.version.label??"";return i.isCurrent?y===""?c("files_versions","Current version"):`${y} (${c("files_versions","Current version")})`:i.isFirstVersion&&y===""?c("files_versions","Initial version"):y}),w=h(()=>!i.version.author||!i.version.authorName?"":i.version.author===B()?.uid?c("files_versions","You"):i.version.authorName??i.version.author),s=h(()=>new Date(i.version.mtime).toLocaleString([P(),P().split("-")[0]],{timeStyle:"long",dateStyle:"long"})),C=h(()=>i.isCurrent?i.node.source:de()+i.version.url),z=h(()=>l.value.files.version_labeling===!0),L=h(()=>l.value.files.version_deletion===!0),F=h(()=>$(i.node,Z.DELETE)),T=h(()=>$(i.node,Z.UPDATE)),q=h(()=>!((i.node.permissions&Z.READ)===0||i.node.attributes["mount-type"]==="shared"&&i.node.attributes["share-attributes"]&&(JSON.parse(i.node.attributes["share-attributes"]).find(y=>y.scope==="permissions"&&y.key==="download")||{})?.value===!1));function K(){n("label-update-request")}function j(){n("restore",i.version)}async function o(){await X(),await X(),n("delete",i.version)}function u(y){i.canView&&y.preventDefault(),n("click",{version:i.version})}function g(){if(!i.canView)throw new Error("Cannot compare version of this file");n("compare",{version:i.version})}function $(y,x){return(y.permissions&x)!==0}return(y,x)=>(a(),S(d(he),{class:"version","force-display-actions":!0,"actions-aria-label":d(c)("files_versions","Actions for version from {versionHumanExplicitDate}",{versionHumanExplicitDate:s.value}),"data-files-versions-version":e.version.fileVersion,href:C.value,onClick:u},{icon:f(()=>[e.loadPreview||v.value?e.version.previewUrl&&!r.value?(a(),m("img",{key:1,src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy",class:"version__image",onLoad:x[0]||(x[0]=ie=>v.value=!0),onError:x[1]||(x[1]=ie=>r.value=!0)},null,40,Je)):(a(),m("div",Xe,[V(Ye,{size:20})])):(a(),m("div",Ze))]),name:f(()=>[k("div",Ge,[p.value?(a(),m("div",{key:0,class:"version__info__label","data-cy-files-version-label":"",title:p.value},_(p.value),9,Qe)):b("",!0),w.value?(a(),m("div",ei,[p.value?(a(),m("span",ii,"•")):b("",!0),V(d(pe),{class:"avatar",user:e.version.author??void 0,size:20,"disable-menu":"","disable-tooltip":"","hide-status":""},null,8,["user"]),k("div",{class:"version__info__author_name",title:w.value},_(w.value),9,ti)])):b("",!0)])]),subname:f(()=>[k("div",oi,[V(d(me),{class:"version__info__date","relative-time":"short",timestamp:e.version.mtime},null,8,["timestamp"]),x[2]||(x[2]=k("span",null,"•",-1)),k("span",null,_(H.value),1)])]),actions:f(()=>[z.value&&T.value?(a(),S(d(N),{key:0,"data-cy-files-versions-version-action":"label","close-after-click":!0,onClick:K},{icon:f(()=>[V(Ce,{size:22})]),default:f(()=>[I(" "+_(e.version.label===""?d(c)("files_versions","Name this version"):d(c)("files_versions","Edit version name")),1)]),_:1})):b("",!0),!e.isCurrent&&e.canView&&e.canCompare?(a(),S(d(N),{key:1,"data-cy-files-versions-version-action":"compare","close-after-click":!0,onClick:g},{icon:f(()=>[V(Re,{size:22})]),default:f(()=>[I(" "+_(d(c)("files_versions","Compare to current version")),1)]),_:1})):b("",!0),!e.isCurrent&&T.value?(a(),S(d(N),{key:2,"data-cy-files-versions-version-action":"restore","close-after-click":!0,onClick:j},{icon:f(()=>[V(Ie,{size:22})]),default:f(()=>[I(" "+_(d(c)("files_versions","Restore version")),1)]),_:1})):b("",!0),q.value?(a(),S(d(ve),{key:3,"data-cy-files-versions-version-action":"download",href:C.value,"close-after-click":!0,download:C.value},{icon:f(()=>[V(fe,{size:22})]),default:f(()=>[I(" "+_(d(c)("files_versions","Download version")),1)]),_:1},8,["href","download"])):b("",!0),!e.isCurrent&&L.value&&F.value?(a(),S(d(N),{key:4,"data-cy-files-versions-version-action":"delete","close-after-click":!0,onClick:o},{icon:f(()=>[V(Ve,{size:22})]),default:f(()=>[I(" "+_(d(c)("files_versions","Delete version")),1)]),_:1})):b("",!0)]),_:1},8,["actions-aria-label","data-files-versions-version","href"]))}}),ni=D(si,[["__scopeId","data-v-83aa2b49"]]),ri={class:"version-label-modal__info"},ai=R({__name:"VersionLabelDialog",props:{open:{type:Boolean,default:!1},label:{type:String,default:""}},emits:["update:open","update:label"],setup(e,{emit:t}){const i=e,n=t,v=be("labelInput"),r=A(""),l=h(()=>{const p=[];return i.label.trim()===""?p.push({label:c("files_versions","Cancel")}):p.push({label:c("files_versions","Remove version name"),type:"reset",variant:"error",callback:()=>{H("")}}),[...p,{label:c("files_versions","Save version name"),icon:ge,type:"submit",variant:"primary"}]});Q(()=>{r.value=i.label??""}),Q(()=>{i.open&&X(()=>v.value?.focus()),r.value=i.label});function H(p){n("update:label",p)}return(p,w)=>(a(),S(d(te),{buttons:l.value,"content-classes":"version-label-modal","is-form":"",open:e.open,size:"normal",name:d(c)("files_versions","Name this version"),"onUpdate:open":w[1]||(w[1]=s=>p.$emit("update:open",s)),onSubmit:w[2]||(w[2]=s=>H(r.value))},{default:f(()=>[V(d(Se),{ref_key:"labelInput",ref:v,modelValue:r.value,"onUpdate:modelValue":w[0]||(w[0]=s=>r.value=s),class:"version-label-modal__input",label:d(c)("files_versions","Version name"),placeholder:d(c)("files_versions","Version name")},null,8,["modelValue","label","placeholder"]),k("p",ri,_(d(c)("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.")),1)]),_:1},8,["buttons","open","name"]))}}),li=D(ai,[["__scopeId","data-v-6a69577b"]]),E=se().setApp("files_version").detectUser().build(),ci=R({name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},emits:["need-content"],data(){return{scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}},computed:{visibleSections(){E.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,v=0;const r=this.sections.map(s=>(v+=this.headerHeight,{...s,rows:s.rows.reduce((C,z)=>{n=v,v+=z.height;let L=0;return vi&&(L=(n-i)/e),L>this.renderDistance?C:[...C,{...z,distance:L}]},[])})).filter(s=>s.rows.length>0),l=r.flatMap(({rows:s})=>s).flatMap(({items:s})=>s),H=this._rowIdToKeyMap;l.forEach(s=>s.key=H[s.id]);const p=l.map(({key:s})=>s).filter(s=>s!==void 0),w=Object.values(H).filter(s=>!p.includes(s));return l.filter(({key:s})=>s===void 0).forEach(s=>s.key=w.pop()??Math.random().toString(36).substr(2)),this._rowIdToKeyMap=l.reduce((s,{id:C,key:z})=>({...s,[`${C}`]:z}),{}),r},totalHeight(){return this.sections.map(e=>this.headerHeight+e.height).reduce((e,t)=>e+t,0)+0},paddingTop(){if(this.visibleSections.length===0)return 0;let e=0;for(const t of this.sections){if(t.key!==this.visibleSections[0].rows[0].sectionKey){e+=this.headerHeight+t.height;continue}for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}return e},rowsContainerStyle(){return{height:`${this.totalHeight}px`,paddingTop:`${this.paddingTop}px`}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return E.debug("[VirtualScrolling] Computing container"),this.containerElement!==null?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){E.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key!==e){t+=this.headerHeight+i.height;continue}break}E.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target===this.container&&(this.containerHeight=i.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=i.height)}}),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeUnmount(){this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),this.resizeObserver?.disconnect(),this.container.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){this._onScrollHandle??=requestAnimationFrame(()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})},updateContainerSize(){this.containerHeight=window.innerHeight}}}),di={key:0,ref:"container",class:"vs-container"};function ui(e,t,i,n,v,r){return!e.useWindow&&e.containerElement===null?(a(),m("div",di,[k("div",{ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[O(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),O(e.$slots,"loader",{},void 0,!0)],4)],512)):(a(),m("div",{key:1,ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[O(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),O(e.$slots,"loader",{},void 0,!0)],4))}const vi=D(ci,[["render",ui],["__scopeId","data-v-b0f92288"]]),mi=` - - - - - - - - - - -`,U=ze();async function pi(e){const t=`/versions/${B()?.uid}/versions/${e.fileid}`;try{const i=(await U.getDirectoryContents(t,{data:mi,details:!0})).data.filter(({mime:r})=>r!=="").map(r=>hi(r,e)),n=new Set(i.map(r=>String(r.author))),v=await He.post(J("/displaynames"),{users:[...n]});for(const r of i){const l=v.data.users[r.author??""];l&&(r.authorName=l)}return i}catch(i){throw E.error("Could not fetch version",{exception:i}),i}}async function fi(e){try{E.debug("Restoring version",{url:e.url}),await U.moveFile(`/versions/${B()?.uid}/versions/${e.fileId}/${e.fileVersion}`,`/versions/${B()?.uid}/restore/target`)}catch(t){throw E.error("Could not restore version",{exception:t}),t}}function hi(e,t){const i=Date.parse(e.lastmod);let n="";return i===t.mtime?.getTime()?n=J("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1",{fileId:t.fileid,fileEtag:t.attributes.etag}):n=J("/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1",{file:t.path,fileVersion:e.basename}),{fileId:t.fileid.toString(),label:e.props["version-label"]?String(e.props["version-label"]):"",author:e.props["version-author"]?String(e.props["version-author"]):null,authorName:null,filename:e.filename,basename:new Date(i).toLocaleString([P(),P().split("-")[0]],{timeStyle:"long",dateStyle:"medium"}),mime:e.mime,etag:`${e.props.getetag}`,size:e.size,type:e.type,mtime:i,permissions:"R",previewUrl:n,url:le("/remote.php/dav",e.filename),source:ue("dav")+ce(e.filename),fileVersion:e.basename}}async function gi(e,t){return await U.customRequest(e.filename,{method:"PROPPATCH",data:` - - - - ${t} - - - `})}async function bi(e){await U.deleteFile(e.filename)}const wi={key:0,class:"versions-tab__container"},yi=["aria-label"],Ri=R({__name:"FilesVersionsSidebarTab",props:{active:{type:Boolean},node:{},folder:{},view:{}},setup(e){const t=e,i=oe(),n=A([]),v=A(!1),r=A(!1),l=A(null);we(ye(()=>t.node),async()=>{if(t.node)try{v.value=!0,n.value=await pi(t.node)}finally{v.value=!1}},{immediate:!0});const H=h(()=>t.node?.mtime?.getTime()??0),p=h(()=>[...n.value].sort((o,u)=>t.node?o.mtime===t.node.mtime?.getTime()?-1:u.mtime===t.node.mtime?.getTime()?1:u.mtime-o.mtime:0)),w=h(()=>[{key:"versions",rows:p.value.map(o=>({key:o.mtime.toString(),height:68,sectionKey:"versions",items:[{id:o.mtime.toString(),version:o}]})),height:68*p.value.length}]),s=h(()=>n.value.map(o=>o.mtime).reduce((o,u)=>Math.min(o,u))),C=h(()=>t.node?window.OCA.Viewer?.mimetypes?.includes(t.node?.mime):!1),z=h(()=>!i.value&&window.OCA.Viewer?.mimetypesCompare?.includes(t.node?.mime));async function L(o){if(!t.node)return;const u=t.node.clone();u.attributes.etag=o.etag,u.size=o.size,u.mtime=new Date(o.mtime);const g={preventDefault:!1,node:u,version:o};if(M("files_versions:restore:requested",g),!g.preventDefault)try{await fi(o),o.label?W(c("files_versions",`${o.label} restored`)):o.mtime===s.value?W(c("files_versions","Initial version restored")):W(c("files_versions","Version restored")),M("files:node:updated",u),M("files_versions:restore:restored",{node:u,version:o})}catch{Y(c("files_versions","Could not restore version")),M("files_versions:restore:failed",o)}}function F(o){r.value=!0,l.value=o}async function T(o){if(l.value===null)throw new Error("editedVersion should be set at that point");const u=l.value.label;l.value.label=o,r.value=!1;try{await gi(l.value,o),l.value=null}catch(g){l.value.label=u,Y(c("files_versions","Could not set version label")),E.error("Could not set version label",{exception:g})}}async function q(o){const u=n.value.indexOf(o);n.value.splice(u,1);try{await bi(o)}catch{n.value.push(o),Y(c("files_versions","Could not delete version"))}}function K({version:o}){if(t.node!==null){if(o.mtime===t.node?.mtime?.getTime()){window.OCA.Viewer.open({path:t.node.path});return}window.OCA.Viewer.open({fileInfo:{...o,filename:o.filename,previewUrl:void 0},enableSidebar:!1})}}function j({version:o}){const u=n.value.map(g=>({...g,previewUrl:void 0}));window.OCA.Viewer.compare({path:t.node.path},u.find(g=>g.source===o.source))}return(o,u)=>e.node?(a(),m("div",wi,[V(vi,{sections:w.value,"header-height":0},{default:f(({visibleSections:g})=>[k("ul",{"aria-label":d(c)("files_versions","File versions"),"data-files-versions-versions-list":""},[g.length===1?(a(!0),m(_e,{key:0},ke(g[0].rows,$=>(a(),S(ni,{key:$.items[0].version.mtime,"can-view":C.value,"can-compare":z.value,"load-preview":e.active,version:$.items[0].version,node:e.node,"is-current":$.items[0].version.mtime===H.value,"is-first-version":$.items[0].version.mtime===s.value,onClick:K,onCompare:j,onRestore:L,onLabelUpdateRequest:y=>F($.items[0].version),onDelete:q},null,8,["can-view","can-compare","load-preview","version","node","is-current","is-first-version","onLabelUpdateRequest"]))),128)):b("",!0)],8,yi)]),loader:f(()=>[v.value?(a(),S(d(ne),{key:0,class:"files-list-viewer__loader"})):b("",!0)]),_:1},8,["sections"]),l.value?(a(),S(li,{key:0,open:r.value,"onUpdate:open":u[0]||(u[0]=g=>r.value=g),label:l.value.label,"onUpdate:label":T},null,8,["open","label"])):b("",!0)])):b("",!0)}});export{Ri as default}; -//# sourceMappingURL=FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.map diff --git a/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.map b/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.map deleted file mode 100644 index c8eb332e10c..00000000000 --- a/dist/FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"FilesVersionsSidebarTab-BzfV5tRK.chunk.mjs","sources":["../node_modules/vue-material-design-icons/BackupRestore.vue","../node_modules/vue-material-design-icons/FileCompare.vue","../node_modules/vue-material-design-icons/ImageOffOutline.vue","../build/frontend/apps/files_versions/src/components/VersionEntry.vue","../build/frontend/apps/files_versions/src/components/VersionLabelDialog.vue","../build/frontend/apps/files_versions/src/utils/logger.ts","../build/frontend/apps/files_versions/src/components/VirtualScrolling.vue","../build/frontend/apps/files_versions/src/utils/davRequest.ts","../build/frontend/apps/files_versions/src/utils/versions.ts","../build/frontend/apps/files_versions/src/views/FilesVersionsSidebarTab.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getClient } from '@nextcloud/files/dav'\nimport { getCanonicalLocale } from '@nextcloud/l10n'\nimport { encodePath, join } from '@nextcloud/paths'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport davRequest from '../utils/davRequest.ts'\nimport logger from '../utils/logger.ts'\n\nexport interface Version {\n\tfileId: string // The id of the file associated to the version.\n\tlabel: string // 'Current version' or ''\n\tauthor: string | null // UID for the author of the version\n\tauthorName: string | null // Display name of the author\n\tfilename: string // File name relative to the version DAV endpoint\n\tbasename: string // A base name generated from the mtime\n\tmime: string // Empty for the current version, else the actual mime type of the version\n\tetag: string // Empty for the current version, else the actual mime type of the version\n\tsize: number // File size in bytes\n\ttype: string // 'file'\n\tmtime: number // Version creation date as a timestamp\n\tpermissions: string // Only readable: 'R'\n\tpreviewUrl: string // Preview URL of the version\n\turl: string // Download URL of the version\n\tsource: string // The WebDAV endpoint of the resource\n\tfileVersion: string | null // The version id, null for the current version\n}\n\nconst client = getClient()\n\n/**\n * Get file versions for a given node\n *\n * @param node - The node to fetch versions for\n */\nexport async function fetchVersions(node: INode): Promise {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${node.fileid}`\n\n\ttry {\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t}) as ResponseDataDetailed\n\n\t\tconst versions = response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map((version) => formatVersion(version as Required, node))\n\n\t\tconst authorIds = new Set(versions.map((version) => String(version.author)))\n\t\tconst authors = await axios.post(generateUrl('/displaynames'), { users: [...authorIds] })\n\n\t\tfor (const version of versions) {\n\t\t\tconst author = authors.data.users[version.author ?? '']\n\t\t\tif (author) {\n\t\t\t\tversion.authorName = author\n\t\t\t}\n\t\t}\n\n\t\treturn versions\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param version - The version to restore\n */\nexport async function restoreVersion(version: Version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`,\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param version - The version data from WebDAV\n * @param node - The original node\n */\nfunction formatVersion(version: Required, node: INode): Version {\n\tconst mtime = Date.parse(version.lastmod)\n\tlet previewUrl = ''\n\n\tif (mtime === node.mtime?.getTime()) { // Version is the current one\n\t\tpreviewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n\t\t\tfileId: node.fileid,\n\t\t\tfileEtag: node.attributes.etag,\n\t\t})\n\t} else {\n\t\tpreviewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n\t\t\tfile: node.path,\n\t\t\tfileVersion: version.basename,\n\t\t})\n\t}\n\n\treturn {\n\t\tfileId: node.fileid!.toString(),\n\t\t// If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n\t\tlabel: version.props['version-label'] ? String(version.props['version-label']) : '',\n\t\tauthor: version.props['version-author'] ? String(version.props['version-author']) : null,\n\t\tauthorName: null,\n\t\tfilename: version.filename,\n\t\tbasename: new Date(mtime).toLocaleString(\n\t\t\t[getCanonicalLocale(), getCanonicalLocale().split('-')[0]!],\n\t\t\t{\n\t\t\t\ttimeStyle: 'long',\n\t\t\t\tdateStyle: 'medium',\n\t\t\t},\n\t\t),\n\t\tmime: version.mime,\n\t\tetag: `${version.props.getetag}`,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime,\n\t\tpermissions: 'R',\n\t\tpreviewUrl,\n\t\turl: join('/remote.php/dav', version.filename),\n\t\tsource: generateRemoteUrl('dav') + encodePath(version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * Set version label\n *\n * @param version - The version to set the label for\n * @param newLabel - The new label\n */\nexport async function setVersionLabel(version: Version, newLabel: string) {\n\treturn await client.customRequest(\n\t\tversion.filename,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n\t\t},\n\t)\n}\n\n/**\n * Delete version\n *\n * @param version - The version to delete\n */\nexport async function deleteVersion(version: Version) {\n\tawait client.deleteFile(version.filename)\n}\n","\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","props","__props","emit","__emit","previewLoaded","ref","previewErrored","capabilities","loadState","humanReadableSize","computed","formatFileSize","versionLabel","label","t","versionAuthor","getCurrentUser","versionHumanExplicitDate","getCanonicalLocale","downloadURL","getRootUrl","enableLabeling","enableDeletion","hasDeletePermissions","hasPermission","Permission","hasUpdatePermissions","isDownloadable","attribute","labelUpdate","restoreVersion","deleteVersion","nextTick","click","event","compareVersion","node","permission","_createBlock","_unref","NcListItem","_createVNode","ImageOffOutline","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","NcAvatar","_hoisted_8","_hoisted_9","NcDateTime","NcActionButton","Pencil","_createTextVNode","FileCompare","BackupRestore","NcActionLink","Download","Delete","labelInput","useTemplateRef","internalLabel","dialogButtons","buttons","setVersionLabel","svgCheck","watchEffect","NcDialog","$emit","NcTextField","_toDisplayString","logger","getLoggerBuilder","_sfc_main$1","defineComponent","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","section","visibleRows","row","distance","visibleItems","rows","items","rowIdToKeyMap","item","usedTokens","key","unusedTokens","finalMapping","id","totalHeight","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","entries","entry","cr","_normalizeStyle","_renderSlot","davRequest","client","getClient","fetchVersions","path","versions","mime","version","formatVersion","authorIds","authors","axios","generateUrl","author","exception","mtime","previewUrl","join","generateRemoteUrl","encodePath","newLabel","isMobile","useIsMobile","loading","showVersionLabelForm","editedVersion","watch","toRef","currentVersionMtime","orderedVersions","a","b","sections","initialVersionMtime","canView","canCompare","handleRestore","restoredNode","restoreStartedEventState","showSuccess","showError","handleLabelUpdateRequest","handleLabelUpdate","oldLabel","handleDelete","index","openVersion","_versions","v","VirtualScrolling","_withCtx","_Fragment","_renderList","VersionEntry","NcLoadingIcon","VersionLabelDialog"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/dist/SetStatusModal-B5KgGx-y.chunk.mjs b/dist/SetStatusModal-B5KgGx-y.chunk.mjs deleted file mode 100644 index 8206382225a..00000000000 --- a/dist/SetStatusModal-B5KgGx-y.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{j as O,a as v}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{g as q}from"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import{b as A}from"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import{N as x}from"./NcSelect-rH_0zphV-DIrEVY9H.chunk.mjs";import{c as C,m as T,a as R,O as j,l as I}from"./user_status-menu.mjs";import{a as S}from"./index-xFugdZPW.chunk.mjs";import{f as c,j as m,o as n,k as a,e as p,t as l,w as g,g as b,F as $,C as B,c as y,_ as M,y as U,H as L,l as k}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import{N as E}from"./NcEmojiPicker-DpA4_bLX-BVQkxdc3.chunk.mjs";import{_ as H}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{N as V}from"./PencilOutline-DoqPbti1.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./mdi-BiMJjngH.chunk.mjs";import"./TrayArrowDown-CXgXqaQ7.chunk.mjs";import"./index-CeZOua3E.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcColorPicker-5Pw0z8WG-jGgVFErK.chunk.mjs";import"./colors-DhRGyJCn-DAL6YfJ7.chunk.mjs";import"./NcInputField-tt_Gi9ja-Cs0S2GF6.chunk.mjs";function D(){return[{label:s("user_status","Don't clear"),clearAt:null},{label:s("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:s("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:s("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:s("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:s("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const W={name:"ClearAtSelect",components:{NcSelect:x},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:D()}},computed:{option(){return{clearAt:this.clearAt,label:C(this.clearAt)}}},methods:{t:s,select(t){t&&this.$emit("selectClearAt",t.clearAt)}}},z={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(t,i,u,f,o,e){const d=c("NcSelect");return n(),m("div",z,[a("label",K,l(e.t("user_status","Clear status after")),1),p(d,{"input-id":"clearStatus",class:"clear-at-select__select",options:o.options,"model-value":e.option,clearable:!1,placement:"top","label-outside":"","onOption:selected":e.select},null,8,["options","model-value","onOption:selected"])])}const G=S(W,[["render",Y],["__scopeId","data-v-84b8c013"]]),J={name:"CustomMessageInput",components:{NcTextField:H,NcButton:A,NcEmojiPicker:E},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t:s,focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t)},setIcon(t){this.$emit("selectIcon",t)}}},Q={class:"custom-input",role:"group"},X={class:"custom-input__container"};function Z(t,i,u,f,o,e){const d=c("NcButton"),r=c("NcEmojiPicker"),_=c("NcTextField");return n(),m("div",Q,[p(r,{container:".custom-input",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(l(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),a("div",X,[p(_,{ref:"input",maxlength:"80",disabled:u.disabled,placeholder:e.t("user_status","What is your status?"),"model-value":u.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","model-value","label","onUpdate:modelValue"])])])}const ee=S(J,[["render",Z],["__scopeId","data-v-a19a0a87"]]),te={name:"OnlineStatusSelect",components:{NcUserStatusIcon:V},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},emits:["select"],computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}},se={class:"user-status-online-select"},ae=["id","checked"],ie=["for"],re={class:"user-status-online-select__icon-wrapper"},ue={class:"user-status-online-select__subline"};function le(t,i,u,f,o,e){const d=c("NcUserStatusIcon");return n(),m("div",se,[a("input",{id:e.id,checked:u.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:i[0]||(i[0]=(...r)=>e.onChange&&e.onChange(...r))},null,40,ae),a("label",{for:e.id,class:"user-status-online-select__label"},[a("span",re,[p(d,{status:u.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+l(u.label)+" ",1),a("em",ue,l(u.subline),1)],8,ie)])}const ne=S(te,[["render",le],["__scopeId","data-v-16876893"]]),ce={name:"PredefinedStatus",props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},emits:["select"],computed:{id(){return`user-status-predefined-status-${this.messageId}`},formattedClearAt(){return C(this.clearAt)}},methods:{select(){this.$emit("select")}}},oe={class:"predefined-status"},de=["id","checked"],pe=["for"],me={"aria-hidden":"true",class:"predefined-status__label--icon"},he={class:"predefined-status__label--message"},ge={class:"predefined-status__label--clear-at"};function Se(t,i,u,f,o,e){return n(),m("li",oe,[a("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:u.selected,onChange:i[0]||(i[0]=(...d)=>e.select&&e.select(...d))},null,40,de),a("label",{class:"predefined-status__label",for:e.id},[a("span",me,l(u.icon),1),a("span",he,l(u.message),1),a("span",ge,l(e.formattedClearAt),1)],8,pe)])}const fe=S(ce,[["render",Se],["__scopeId","data-v-200bf95b"]]),_e={name:"PredefinedStatusesList",components:{PredefinedStatus:fe},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...R({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...T(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t:s,selectStatus(t){this.lastSelected=t.id,this.$emit("selectStatus",t)}}},be=["aria-label"],ye={key:1,class:"predefined-statuses-list"};function ve(t,i,u,f,o,e){const d=c("PredefinedStatus");return t.statusesHaveLoaded?(n(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(n(!0),m($,null,B(t.predefinedStatuses,r=>(n(),y(d,{key:r.id,"message-id":r.id,icon:r.icon,message:r.message,"clear-at":r.clearAt,selected:o.lastSelected===r.id,onSelect:_=>e.selectStatus(r)},null,8,["message-id","icon","message","clear-at","selected","onSelect"]))),128))],8,be)):(n(),m("div",ye,[...i[0]||(i[0]=[a("div",{class:"icon icon-loading-small"},null,-1)])]))}const Ie=S(_e,[["render",ve],["__scopeId","data-v-09171ec7"]]),ke={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t:s,select(){this.$emit("select")}}},Ae={class:"predefined-status__icon"},Me={class:"predefined-status__message"},Ce={class:"predefined-status__clear-at"},$e={class:"backup-status__reset-button"};function Be(t,i,u,f,o,e){const d=c("NcButton");return n(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[i[0]||(i[0]=M((...r)=>e.select&&e.select(...r),["enter"])),i[1]||(i[1]=M((...r)=>e.select&&e.select(...r),["space"]))],onClick:i[2]||(i[2]=(...r)=>e.select&&e.select(...r))},[a("span",Ae,l(u.icon),1),a("span",Me,l(u.message),1),a("span",Ce,l(e.t("user_status","Previously set")),1),a("div",$e,[p(d,{onClick:e.select},{default:g(()=>[b(l(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Pe=S(ke,[["render",Be],["__scopeId","data-v-5fa747a0"]]);function Ne(){return[{type:"online",label:s("user_status","Online")},{type:"away",label:s("user_status","Away")},{type:"busy",label:s("user_status","Busy")},{type:"dnd",label:s("user_status","Do not disturb"),subline:s("user_status","Mute all notifications")},{type:"invisible",label:s("user_status","Invisible"),subline:s("user_status","Appear offline")}]}const we={name:"SetStatusModal",components:{ClearAtSelect:G,CustomMessageInput:ee,NcModal:O,OnlineStatusSelect:ne,PredefinedStatusesList:Ie,PreviousStatus:Pe,NcButton:A},mixins:[j],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:Ne()}},computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},absencePageUrl(){return q("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?s("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?s("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?s("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):s("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,this.$store.state.userStatus.clearAt!==null&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{t:s,closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,this.predefinedMessageId===null?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(t){v(s("user_status","There was an error saving the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){v(s("user_status","There was an error clearing the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){v(s("user_status","There was an error reverting the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},Fe={class:"set-status-modal"},Oe={id:"user_status-set-dialog",class:"set-status-modal__header"},qe=["aria-label"],xe={class:"set-status-modal__header"},Te={class:"set-status-modal__custom-input"},Re={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(t,i,u,f,o,e){const d=c("OnlineStatusSelect"),r=c("CustomMessageInput"),_=c("NcButton"),P=c("PreviousStatus"),N=c("PredefinedStatusesList"),w=c("ClearAtSelect"),F=c("NcModal");return n(),y(F,{size:"normal","label-id":"user_status-set-dialog",dark:"","set-return-focus":e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[a("div",Fe,[a("h2",Oe,l(e.t("user_status","Online status")),1),a("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(n(!0),m($,null,B(o.statuses,h=>(n(),y(d,U({key:h.type},{ref_for:!0},h,{checked:h.type===t.statusType,onSelect:t.changeStatus}),null,16,["checked","onSelect"]))),128))],8,qe),a("form",{onSubmit:i[0]||(i[0]=L((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:i[1]||(i[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[a("h3",xe,l(e.t("user_status","Status message")),1),a("div",Te,[p(r,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(n(),y(_,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(l(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):k("",!0)]),e.hasBackupStatus?(n(),m("div",Re,l(e.t("user_status","Your status was set automatically")),1)):k("",!0),e.hasBackupStatus?(n(),y(P,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):k("",!0),p(N,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(w,{"clear-at":o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clear-at","onSelectClearAt"]),a("div",je,[p(_,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(_,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["set-return-focus","onClose"])}const rt=S(we,[["render",Ue],["__scopeId","data-v-40458f54"]]);export{rt as default}; -//# sourceMappingURL=SetStatusModal-B5KgGx-y.chunk.mjs.map diff --git a/dist/SetStatusModal-B5KgGx-y.chunk.mjs.map b/dist/SetStatusModal-B5KgGx-y.chunk.mjs.map deleted file mode 100644 index cb61b003da0..00000000000 --- a/dist/SetStatusModal-B5KgGx-y.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SetStatusModal-B5KgGx-y.chunk.mjs","sources":["../build/frontend/apps/user_status/src/services/clearAtOptionsService.js","../build/frontend/apps/user_status/src/components/ClearAtSelect.vue","../build/frontend/apps/user_status/src/components/CustomMessageInput.vue","../build/frontend/apps/user_status/src/components/OnlineStatusSelect.vue","../build/frontend/apps/user_status/src/components/PredefinedStatus.vue","../build/frontend/apps/user_status/src/components/PredefinedStatusesList.vue","../build/frontend/apps/user_status/src/components/PreviousStatus.vue","../build/frontend/apps/user_status/src/services/statusOptionsService.js","../build/frontend/apps/user_status/src/components/SetStatusModal.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nfunction getAllClearAtOptions() {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nfunction getAllStatusOptions() {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'busy',\n\t\tlabel: t('user_status', 'Busy'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\n}\n","\n\n\n\n\n\n\n"],"names":["getAllClearAtOptions","t","_sfc_main","NcSelect","clearAtFormat","option","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$options","_createVNode","_component_NcSelect","$data","NcTextField","NcButton","NcEmojiPicker","value","icon","_component_NcEmojiPicker","_component_NcButton","_component_NcTextField","$props","NcUserStatusIcon","_hoisted_4","_hoisted_5","args","_component_NcUserStatusIcon","_hoisted_6","PredefinedStatus","mapState","state","mapGetters","status","_ctx","_Fragment","_renderList","_createBlock","_component_PredefinedStatus","$event","_cache","_hoisted_3","getAllStatusOptions","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","OnlineStatusMixin","generateUrl","newValue","message","clearAt","err","showError","logger","_hoisted_7","_component_NcModal","_component_OnlineStatusSelect","_mergeProps","_component_CustomMessageInput","_component_PreviousStatus","_component_PredefinedStatusesList","_component_ClearAtSelect"],"mappings":"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"} \ No newline at end of file diff --git a/dist/SetStatusModal-BZIAjrg5.chunk.mjs b/dist/SetStatusModal-BZIAjrg5.chunk.mjs new file mode 100644 index 00000000000..be87939a8a4 --- /dev/null +++ b/dist/SetStatusModal-BZIAjrg5.chunk.mjs @@ -0,0 +1,2 @@ +import{j as O,a as v}from"./index-JpgrUA2Z-Cg8qxgsw.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-DRDc35uB.chunk.mjs";import{g as q}from"./createElementId-DhjFt1I9-CbtAsEAv.chunk.mjs";import{b as A}from"./NcNoteCard-Cok_4Fld-CEiA7MRo.chunk.mjs";import{N as x}from"./NcSelect-rH_0zphV-DIrEVY9H.chunk.mjs";import{c as C,m as R,a as T,O as j,l as I}from"./user_status-menu.mjs";import{a as S}from"./index-xFugdZPW.chunk.mjs";import{f as c,j as m,o as n,k as a,e as p,t as l,w as g,g as b,F as $,C as B,c as y,_ as M,y as U,H as V,l as k}from"./runtime-dom.esm-bundler-CBTFVsZ1.chunk.mjs";import{N as L}from"./NcEmojiPicker-DpA4_bLX-BVQkxdc3.chunk.mjs";import{_ as E}from"./TrashCanOutline-t5kbV5NX.chunk.mjs";import{N as H}from"./PencilOutline-DoqPbti1.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./mdi-BiMJjngH.chunk.mjs";import"./TrayArrowDown-CXgXqaQ7.chunk.mjs";import"./index-CeZOua3E.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcColorPicker-5Pw0z8WG-jGgVFErK.chunk.mjs";import"./colors-DhRGyJCn-DAL6YfJ7.chunk.mjs";import"./NcInputField-tt_Gi9ja-Cs0S2GF6.chunk.mjs";function D(){return[{label:s("user_status","Don't clear"),clearAt:null},{label:s("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:s("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:s("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:s("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:s("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const W={name:"ClearAtSelect",components:{NcSelect:x},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:D()}},computed:{option(){return{clearAt:this.clearAt,label:C(this.clearAt)}}},methods:{t:s,select(t){t&&this.$emit("selectClearAt",t.clearAt)}}},z={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(t,i,u,f,o,e){const d=c("NcSelect");return n(),m("div",z,[a("label",K,l(e.t("user_status","Clear status after")),1),p(d,{inputId:"clearStatus",class:"clear-at-select__select",options:o.options,modelValue:e.option,clearable:!1,placement:"top",labelOutside:"","onOption:selected":e.select},null,8,["options","modelValue","onOption:selected"])])}const G=S(W,[["render",Y],["__scopeId","data-v-83a07433"]]),J={name:"CustomMessageInput",components:{NcTextField:E,NcButton:A,NcEmojiPicker:L},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t:s,focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t)},setIcon(t){this.$emit("selectIcon",t)}}},Q={class:"custom-input",role:"group"},X={class:"custom-input__container"};function Z(t,i,u,f,o,e){const d=c("NcButton"),r=c("NcEmojiPicker"),_=c("NcTextField");return n(),m("div",Q,[p(r,{container:".custom-input",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(l(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),a("div",X,[p(_,{ref:"input",maxlength:"80",disabled:u.disabled,placeholder:e.t("user_status","What is your status?"),modelValue:u.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","modelValue","label","onUpdate:modelValue"])])])}const ee=S(J,[["render",Z],["__scopeId","data-v-c4dffd86"]]),te={name:"OnlineStatusSelect",components:{NcUserStatusIcon:H},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},emits:["select"],computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}},se={class:"user-status-online-select"},ae=["id","checked"],ie=["for"],re={class:"user-status-online-select__icon-wrapper"},ue={class:"user-status-online-select__subline"};function le(t,i,u,f,o,e){const d=c("NcUserStatusIcon");return n(),m("div",se,[a("input",{id:e.id,checked:u.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:i[0]||(i[0]=(...r)=>e.onChange&&e.onChange(...r))},null,40,ae),a("label",{for:e.id,class:"user-status-online-select__label"},[a("span",re,[p(d,{status:u.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+l(u.label)+" ",1),a("em",ue,l(u.subline),1)],8,ie)])}const ne=S(te,[["render",le],["__scopeId","data-v-16876893"]]),ce={name:"PredefinedStatus",props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},emits:["select"],computed:{id(){return`user-status-predefined-status-${this.messageId}`},formattedClearAt(){return C(this.clearAt)}},methods:{select(){this.$emit("select")}}},oe={class:"predefined-status"},de=["id","checked"],pe=["for"],me={"aria-hidden":"true",class:"predefined-status__label--icon"},he={class:"predefined-status__label--message"},ge={class:"predefined-status__label--clear-at"};function Se(t,i,u,f,o,e){return n(),m("li",oe,[a("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:u.selected,onChange:i[0]||(i[0]=(...d)=>e.select&&e.select(...d))},null,40,de),a("label",{class:"predefined-status__label",for:e.id},[a("span",me,l(u.icon),1),a("span",he,l(u.message),1),a("span",ge,l(e.formattedClearAt),1)],8,pe)])}const fe=S(ce,[["render",Se],["__scopeId","data-v-200bf95b"]]),_e={name:"PredefinedStatusesList",components:{PredefinedStatus:fe},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...T({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...R(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t:s,selectStatus(t){this.lastSelected=t.id,this.$emit("selectStatus",t)}}},be=["aria-label"],ye={key:1,class:"predefined-statuses-list"};function ve(t,i,u,f,o,e){const d=c("PredefinedStatus");return t.statusesHaveLoaded?(n(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(n(!0),m($,null,B(t.predefinedStatuses,r=>(n(),y(d,{key:r.id,messageId:r.id,icon:r.icon,message:r.message,clearAt:r.clearAt,selected:o.lastSelected===r.id,onSelect:_=>e.selectStatus(r)},null,8,["messageId","icon","message","clearAt","selected","onSelect"]))),128))],8,be)):(n(),m("div",ye,[...i[0]||(i[0]=[a("div",{class:"icon icon-loading-small"},null,-1)])]))}const Ie=S(_e,[["render",ve],["__scopeId","data-v-b7009355"]]),ke={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t:s,select(){this.$emit("select")}}},Ae={class:"predefined-status__icon"},Me={class:"predefined-status__message"},Ce={class:"predefined-status__clear-at"},$e={class:"backup-status__reset-button"};function Be(t,i,u,f,o,e){const d=c("NcButton");return n(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[i[0]||(i[0]=M((...r)=>e.select&&e.select(...r),["enter"])),i[1]||(i[1]=M((...r)=>e.select&&e.select(...r),["space"]))],onClick:i[2]||(i[2]=(...r)=>e.select&&e.select(...r))},[a("span",Ae,l(u.icon),1),a("span",Me,l(u.message),1),a("span",Ce,l(e.t("user_status","Previously set")),1),a("div",$e,[p(d,{onClick:e.select},{default:g(()=>[b(l(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Pe=S(ke,[["render",Be],["__scopeId","data-v-5fa747a0"]]);function Ne(){return[{type:"online",label:s("user_status","Online")},{type:"away",label:s("user_status","Away")},{type:"busy",label:s("user_status","Busy")},{type:"dnd",label:s("user_status","Do not disturb"),subline:s("user_status","Mute all notifications")},{type:"invisible",label:s("user_status","Invisible"),subline:s("user_status","Appear offline")}]}const we={name:"SetStatusModal",components:{ClearAtSelect:G,CustomMessageInput:ee,NcModal:O,OnlineStatusSelect:ne,PredefinedStatusesList:Ie,PreviousStatus:Pe,NcButton:A},mixins:[j],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:Ne()}},computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},absencePageUrl(){return q("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?s("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?s("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?s("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):s("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,this.$store.state.userStatus.clearAt!==null&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{t:s,closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,this.predefinedMessageId===null?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(t){v(s("user_status","There was an error saving the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){v(s("user_status","There was an error clearing the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){v(s("user_status","There was an error reverting the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},Fe={class:"set-status-modal"},Oe={id:"user_status-set-dialog",class:"set-status-modal__header"},qe=["aria-label"],xe={class:"set-status-modal__header"},Re={class:"set-status-modal__custom-input"},Te={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(t,i,u,f,o,e){const d=c("OnlineStatusSelect"),r=c("CustomMessageInput"),_=c("NcButton"),P=c("PreviousStatus"),N=c("PredefinedStatusesList"),w=c("ClearAtSelect"),F=c("NcModal");return n(),y(F,{size:"normal",labelId:"user_status-set-dialog",dark:"",setReturnFocus:e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[a("div",Fe,[a("h2",Oe,l(e.t("user_status","Online status")),1),a("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(n(!0),m($,null,B(o.statuses,h=>(n(),y(d,U({key:h.type},{ref_for:!0},h,{checked:h.type===t.statusType,onSelect:t.changeStatus}),null,16,["checked","onSelect"]))),128))],8,qe),a("form",{onSubmit:i[0]||(i[0]=V((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:i[1]||(i[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[a("h3",xe,l(e.t("user_status","Status message")),1),a("div",Re,[p(r,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(n(),y(_,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(l(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):k("",!0)]),e.hasBackupStatus?(n(),m("div",Te,l(e.t("user_status","Your status was set automatically")),1)):k("",!0),e.hasBackupStatus?(n(),y(P,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):k("",!0),p(N,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(w,{clearAt:o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clearAt","onSelectClearAt"]),a("div",je,[p(_,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(_,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["setReturnFocus","onClose"])}const rt=S(we,[["render",Ue],["__scopeId","data-v-92f8f344"]]);export{rt as default}; +//# sourceMappingURL=SetStatusModal-BZIAjrg5.chunk.mjs.map diff --git a/dist/SetStatusModal-B5KgGx-y.chunk.mjs.license b/dist/SetStatusModal-BZIAjrg5.chunk.mjs.license similarity index 100% rename from dist/SetStatusModal-B5KgGx-y.chunk.mjs.license rename to dist/SetStatusModal-BZIAjrg5.chunk.mjs.license diff --git a/dist/SetStatusModal-BZIAjrg5.chunk.mjs.map b/dist/SetStatusModal-BZIAjrg5.chunk.mjs.map new file mode 100644 index 00000000000..7fc3041df05 --- /dev/null +++ b/dist/SetStatusModal-BZIAjrg5.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"SetStatusModal-BZIAjrg5.chunk.mjs","sources":["../build/frontend/apps/user_status/src/services/clearAtOptionsService.js","../build/frontend/apps/user_status/src/components/ClearAtSelect.vue","../build/frontend/apps/user_status/src/components/CustomMessageInput.vue","../build/frontend/apps/user_status/src/components/OnlineStatusSelect.vue","../build/frontend/apps/user_status/src/components/PredefinedStatus.vue","../build/frontend/apps/user_status/src/components/PredefinedStatusesList.vue","../build/frontend/apps/user_status/src/components/PreviousStatus.vue","../build/frontend/apps/user_status/src/services/statusOptionsService.js","../build/frontend/apps/user_status/src/components/SetStatusModal.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nfunction getAllClearAtOptions() {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nfunction getAllStatusOptions() {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'busy',\n\t\tlabel: t('user_status', 'Busy'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\n}\n","\n\n\n\n\n\n\n"],"names":["getAllClearAtOptions","t","_sfc_main","NcSelect","clearAtFormat","option","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$options","_createVNode","_component_NcSelect","$data","NcTextField","NcButton","NcEmojiPicker","value","icon","_component_NcEmojiPicker","_component_NcButton","_component_NcTextField","$props","NcUserStatusIcon","_hoisted_4","_hoisted_5","args","_component_NcUserStatusIcon","_hoisted_6","PredefinedStatus","mapState","state","mapGetters","status","_ctx","_Fragment","_renderList","_createBlock","_component_PredefinedStatus","$event","_cache","_hoisted_3","getAllStatusOptions","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","OnlineStatusMixin","generateUrl","newValue","message","clearAt","err","showError","logger","_hoisted_7","_component_NcModal","_component_OnlineStatusSelect","_mergeProps","_component_CustomMessageInput","_component_PreviousStatus","_component_PredefinedStatusesList","_component_ClearAtSelect"],"mappings":"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"} \ No newline at end of file diff --git a/dist/SetStatusModal-B5KgGx-y.chunk.mjs.map.license b/dist/SetStatusModal-BZIAjrg5.chunk.mjs.map.license similarity index 100% rename from dist/SetStatusModal-B5KgGx-y.chunk.mjs.map.license rename to dist/SetStatusModal-BZIAjrg5.chunk.mjs.map.license diff --git a/dist/core-login.js.map b/dist/core-login.js.map index f81e47ed032..3ac3e853844 100644 --- a/dist/core-login.js.map +++ b/dist/core-login.js.map @@ -1 +1 @@ -{"version":3,"file":"core-login.js?v=34c5765febd208d7a85b","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///nextcloud/core/src/views/Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///nextcloud/core/src/components/login/LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///nextcloud/node_modules/backbone/backbone.js","webpack:///nextcloud/core/src/components/login/LoginButton.vue","webpack:///nextcloud/core/src/components/login/LoginButton.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/login/LoginButton.vue?428d","webpack://nextcloud/./core/src/components/login/LoginButton.vue?14f0","webpack://nextcloud/./core/src/components/login/LoginButton.vue?82aa","webpack:///nextcloud/core/src/mixins/auth.js","webpack:///nextcloud/core/src/components/login/LoginForm.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/login/LoginForm.vue","webpack://nextcloud/./core/src/components/login/LoginForm.vue?33a8","webpack://nextcloud/./core/src/components/login/LoginForm.vue?a678","webpack://nextcloud/./core/src/components/login/LoginForm.vue?4366","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthn.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/webAuthnError.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/webAuthnAbortService.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/bufferToBase64URLString.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/base64URLStringToBuffer.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthnAutofill.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/toPublicKeyCredentialDescriptor.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/toAuthenticatorAttachment.js","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/LockOpen.vue?104d","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue?vue&type=template&id=d7513faa","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/WebAuthnAuthenticationService.ts","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/methods/startAuthentication.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/identifyAuthenticationError.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/isValidDomain.js","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?2492","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?09eb","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?16ec","webpack:///nextcloud/core/src/components/login/ResetPassword.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/components/login/ResetPassword.vue","webpack://nextcloud/./core/src/components/login/ResetPassword.vue?e816","webpack://nextcloud/./core/src/components/login/ResetPassword.vue?9d75","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?84cd","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?30ca","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?1c8f","webpack:///nextcloud/core/src/views/Login.vue","webpack:///nextcloud/core/src/utils/xhr-request.js","webpack:///nextcloud/core/src/views/Login.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/Login.vue?6921","webpack://nextcloud/./core/src/views/Login.vue?3468","webpack://nextcloud/./core/src/views/Login.vue?ae59","webpack:///nextcloud/core/src/OC/admin.js","webpack:///nextcloud/core/src/OC/appconfig.js","webpack:///nextcloud/core/src/OC/apps.js","webpack:///nextcloud/core/src/OC/appswebroots.js","webpack:///nextcloud/core/src/OC/backbone-webdav.js","webpack:///nextcloud/core/src/OC/backbone.js","webpack:///nextcloud/core/src/OC/config.js","webpack:///nextcloud/core/src/OC/currentuser.js","webpack:///nextcloud/core/src/OC/debug.js","webpack:///nextcloud/core/src/OC/dialogs.js","webpack:///nextcloud/core/src/OC/requesttoken.ts","webpack:///nextcloud/core/src/OC/eventsource.js","webpack:///nextcloud/core/src/OC/l10n.js","webpack:///nextcloud/core/src/OC/menu.js","webpack:///nextcloud/core/src/OC/constants.js","webpack:///nextcloud/core/src/OC/mimeType.js","webpack:///nextcloud/core/src/OC/msg.ts","webpack:///nextcloud/core/src/OC/notification.js","webpack:///nextcloud/core/src/OC/password-confirmation.js","webpack:///nextcloud/core/src/OC/plugins.js","webpack:///nextcloud/core/src/OC/settings.js","webpack:///nextcloud/core/src/OC/theme.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/core/src/OC/util-history.js","webpack:///nextcloud/core/src/OC/util.js","webpack:///nextcloud/core/src/OC/webroot.js","webpack:///nextcloud/core/src/OC/index.js","webpack:///nextcloud/core/src/OC/capabilities.js","webpack:///nextcloud/core/src/OC/query-string.ts","webpack:///nextcloud/core/src/OC/routing.js","webpack:///nextcloud/core/src/mixins/Nextcloud.js","webpack:///nextcloud/core/src/login.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///nextcloud/core/src/components/login/LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///nextcloud/node_modules/davclient.js/lib/client.js","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///nextcloud/node_modules/handlebars/runtime.js","webpack:///nextcloud/core/src/components/login/ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n if (result == null) {\n return result;\n }\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({ lookupProperty: lookupProperty }, options);\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztH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QUFDbkMsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFkLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ2xELENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQ09NUElMRVJfUkVWSVNJT04sXG4gIGNyZWF0ZUZyYW1lLFxuICBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04sXG4gIFJFVklTSU9OX0NIQU5HRVNcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG1vdmVIZWxwZXJUb0hvb2tzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHdyYXBIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsL3dyYXBIZWxwZXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sLFxuICByZXN1bHRJc0FsbG93ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgY29uc3QgY29tcGlsZXJSZXZpc2lvbiA9IChjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdKSB8fCAxLFxuICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChcbiAgICBjb21waWxlclJldmlzaW9uID49IExBU1RfQ09NUEFUSUJMRV9DT01QSUxFUl9SRVZJU0lPTiAmJlxuICAgIGNvbXBpbGVyUmV2aXNpb24gPD0gQ09NUElMRVJfUkVWSVNJT05cbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04pIHtcbiAgICBjb25zdCBydW50aW1lVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2N1cnJlbnRSZXZpc2lvbl0sXG4gICAgICBjb21waWxlclZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjb21waWxlclJldmlzaW9uXTtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIHJ1bnRpbWVWZXJzaW9ucyArXG4gICAgICAgICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcnVudGltZSB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlckluZm9bMV0gK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgY29uc3QgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3ID1cbiAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXIgJiYgdGVtcGxhdGVTcGVjLmNvbXBpbGVyWzBdID09PSA3O1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFydGlhbCA9IGVudi5WTS5yZXNvbHZlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGV4dGVuZGVkT3B0aW9ucyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICBwcm90b0FjY2Vzc0NvbnRyb2w6IHRoaXMucHJvdG9BY2Nlc3NDb250cm9sXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBwYXJ0aWFsLFxuICAgICAgY29udGV4dCxcbiAgICAgIGV4dGVuZGVkT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKFxuICAgICAgICBwYXJ0aWFsLFxuICAgICAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJPcHRpb25zLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgICAnVGhlIHBhcnRpYWwgJyArXG4gICAgICAgICAgb3B0aW9ucy5uYW1lICtcbiAgICAgICAgICAnIGNvdWxkIG5vdCBiZSBjb21waWxlZCB3aGVuIHJ1bm5pbmcgaW4gcnVudGltZS1vbmx5IG1vZGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUsIGxvYykge1xuICAgICAgaWYgKCFvYmogfHwgIShuYW1lIGluIG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignXCInICsgbmFtZSArICdcIiBub3QgZGVmaW5lZCBpbiAnICsgb2JqLCB7XG4gICAgICAgICAgbG9jOiBsb2NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5KG9iaiwgbmFtZSk7XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIGxldCByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uKGRlcHRocywgbmFtZSkge1xuICAgICAgY29uc3QgbGVuID0gZGVwdGhzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRlcHRoc1tpXSAmJiBjb250YWluZXIubG9va3VwUHJvcGVydHkoZGVwdGhzW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICBmbiA9IHRoaXMuZm4oaSk7XG4gICAgICBpZiAoZGF0YSB8fCBkZXB0aHMgfHwgYmxvY2tQYXJhbXMgfHwgZGVjbGFyZWRCbG9ja1BhcmFtcykge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHdyYXBQcm9ncmFtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgaSxcbiAgICAgICAgICBmbixcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlY2xhcmVkQmxvY2tQYXJhbXMsXG4gICAgICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICAgICAgZGVwdGhzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2VJZk5lZWRlZDogZnVuY3Rpb24ocGFyYW0sIGNvbW1vbikge1xuICAgICAgbGV0IG9iaiA9IHBhcmFtIHx8IGNvbW1vbjtcblxuICAgICAgaWYgKHBhcmFtICYmIGNvbW1vbiAmJiBwYXJhbSAhPT0gY29tbW9uKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9XG4gICAgICAgICAgY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXVxuICAgICAgICAgICAgPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKVxuICAgICAgICAgICAgOiBvcHRpb25zLmRlcHRocztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHRocyA9IFtjb250ZXh0XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWluKGNvbnRleHQgLyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJycgK1xuICAgICAgICB0ZW1wbGF0ZVNwZWMubWFpbihcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtYWluID0gZXhlY3V0ZURlY29yYXRvcnMoXG4gICAgICB0ZW1wbGF0ZVNwZWMubWFpbixcbiAgICAgIG1haW4sXG4gICAgICBjb250YWluZXIsXG4gICAgICBvcHRpb25zLmRlcHRocyB8fCBbXSxcbiAgICAgIGRhdGEsXG4gICAgICBibG9ja1BhcmFtc1xuICAgICk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwpIHtcbiAgICAgIGxldCBtZXJnZWRIZWxwZXJzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuaGVscGVycywgb3B0aW9ucy5oZWxwZXJzKTtcbiAgICAgIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKTtcbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gbWVyZ2VkSGVscGVycztcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIC8vIFVzZSBtZXJnZUlmTmVlZGVkIGhlcmUgdG8gcHJldmVudCBjb21waWxpbmcgZ2xvYmFsIHBhcnRpYWxzIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZUlmTmVlZGVkKFxuICAgICAgICAgIG9wdGlvbnMucGFydGlhbHMsXG4gICAgICAgICAgZW52LnBhcnRpYWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwgfHwgdGVtcGxhdGVTcGVjLnVzZURlY29yYXRvcnMpIHtcbiAgICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBVdGlscy5leHRlbmQoXG4gICAgICAgICAge30sXG4gICAgICAgICAgZW52LmRlY29yYXRvcnMsXG4gICAgICAgICAgb3B0aW9ucy5kZWNvcmF0b3JzXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IHt9O1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChvcHRpb25zKTtcblxuICAgICAgbGV0IGtlZXBIZWxwZXJJbkhlbHBlcnMgPVxuICAgICAgICBvcHRpb25zLmFsbG93Q2FsbHNUb0hlbHBlck1pc3NpbmcgfHxcbiAgICAgICAgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3O1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnaGVscGVyTWlzc2luZycsIGtlZXBIZWxwZXJJbkhlbHBlcnMpO1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnYmxvY2tIZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wgPSBvcHRpb25zLnByb3RvQWNjZXNzQ29udHJvbDsgLy8gaW50ZXJuYWwgb3B0aW9uXG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IG9wdGlvbnMuaG9va3M7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oXG4gICAgICBjb250YWluZXIsXG4gICAgICBpLFxuICAgICAgdGVtcGxhdGVTcGVjW2ldLFxuICAgICAgZGF0YSxcbiAgICAgIDAsXG4gICAgICBibG9ja1BhcmFtcyxcbiAgICAgIGRlcHRoc1xuICAgICk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShcbiAgY29udGFpbmVyLFxuICBpLFxuICBmbixcbiAgZGF0YSxcbiAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgYmxvY2tQYXJhbXMsXG4gIGRlcHRoc1xuKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKFxuICAgICAgZGVwdGhzICYmXG4gICAgICBjb250ZXh0ICE9IGRlcHRoc1swXSAmJlxuICAgICAgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKVxuICAgICkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oXG4gICAgICBjb250YWluZXIsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGFpbmVyLmhlbHBlcnMsXG4gICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zICYmIFtvcHRpb25zLmJsb2NrUGFyYW1zXS5jb25jYXQoYmxvY2tQYXJhbXMpLFxuICAgICAgY3VycmVudERlcHRoc1xuICAgICk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBBUEksIHRoZXJlZm9yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHNob3VsZCBub3QgYmUgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKFxuICAgICAgY29udGV4dCxcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgICkge1xuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhKGNvbnRleHQsIGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8ICEoJ3Jvb3QnIGluIGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGEgPyBjcmVhdGVGcmFtZShkYXRhKSA6IHt9O1xuICAgIGRhdGEucm9vdCA9IGNvbnRleHQ7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpIHtcbiAgaWYgKGZuLmRlY29yYXRvcikge1xuICAgIGxldCBwcm9wcyA9IHt9O1xuICAgIHByb2cgPSBmbi5kZWNvcmF0b3IoXG4gICAgICBwcm9nLFxuICAgICAgcHJvcHMsXG4gICAgICBjb250YWluZXIsXG4gICAgICBkZXB0aHMgJiYgZGVwdGhzWzBdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGhlbHBlck5hbWUgPT4ge1xuICAgIGxldCBoZWxwZXIgPSBtZXJnZWRIZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV0gPSBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzc0xvb2t1cFByb3BlcnR5T3B0aW9uKGhlbHBlciwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gd3JhcEhlbHBlcihoZWxwZXIsIG9wdGlvbnMgPT4ge1xuICAgIHJldHVybiBVdGlscy5leHRlbmQoeyBsb29rdXBQcm9wZXJ0eSB9LCBvcHRpb25zKTtcbiAgfSk7XG59XG4iXX0=\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-box[data-v-518c0816]{width:320px;box-sizing:border-box}.login-box__wrapper[data-v-518c0816]{display:flex;flex-direction:column;gap:calc(2*var(--default-grid-baseline))}.login-box__alternative-logins[data-v-518c0816]{display:flex;flex-direction:column;gap:.75rem}.fade-enter-active[data-v-518c0816],.fade-leave-active[data-v-518c0816]{transition:opacity .3s}.fade-enter[data-v-518c0816],.fade-leave-to[data-v-518c0816]{opacity:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/Login.vue\"],\"names\":[],\"mappings\":\"AACA,4BAEC,WAAA,CACA,qBAAA,CAEA,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CAGD,gDACC,YAAA,CACA,qBAAA,CACA,UAAA,CAIF,wEACC,sBAAA,CAGD,6DACC,SAAA\",\"sourcesContent\":[\"\\n.login-box {\\n\\t// Same size as dashboard panels\\n\\twidth: 320px;\\n\\tbox-sizing: border-box;\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(2 * var(--default-grid-baseline));\\n\\t}\\n\\n\\t&__alternative-logins {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 0.75rem;\\n\\t}\\n}\\n\\n.fade-enter-active, .fade-leave-active {\\n\\ttransition: opacity .3s;\\n}\\n\\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\\n\\topacity: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.button-vue[data-v-bbf83d00]{margin-top:.5rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginButton.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA\",\"sourcesContent\":[\"\\n.button-vue {\\n\\tmargin-top: .5rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","// Backbone.js 1.6.1\n\n// (c) 2010-2024 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.6.1';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n\n // Just _.defaults would work fine, but the additional _.extends\n // is in there for historical reasons. See #3843.\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) {\n var prevId = this.id;\n this.id = this.get(this.idAttribute);\n if (this.id !== prevId) {\n this.trigger('changeId', this, prevId, options);\n }\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) {\n m.off('error', collection._forwardPristineError, collection);\n collection.add(m, callbackOpts);\n }\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n // In case of wait:true, our collection is not listening to any\n // of the model's events yet, so it will not forward the error\n // event. In this special case, we need to listen for it\n // separately and handle the event just once.\n // (The reason we don't need to do this for the sync event is\n // in the success handler above: we add the model first, which\n // causes the collection to listen, and then invoke the callback\n // that triggers the event.)\n if (wait) {\n model.once('error', this._forwardPristineError, this);\n }\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs, idAttribute) {\n return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n\n var model;\n if (this.model.prototype) {\n model = new this.model(attrs, options);\n } else {\n // ES class methods didn't have prototype\n model = this.model(attrs, options);\n }\n\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n if (models.length > 0 && !options.silent) delete options.index;\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'changeId') {\n var prevId = this.modelId(model.previousAttributes(), model.idAttribute);\n var id = this.modelId(model.attributes, model.idAttribute);\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n },\n\n // Internal callback method used in `create`. It serves as a\n // stand-in for the `_onModelEvent` method, which is not yet bound\n // during the `wait` period of the `create` call. We still want to\n // forward any `'error'` event at the end of the `wait` period,\n // hence a customized callback.\n _forwardPristineError: function(model, collection, options) {\n // Prevent double forward if the model was already in the\n // collection before the call to `create`.\n if (this.has(model)) return;\n this._onModelEvent('error', model, collection, options);\n }\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes, model.idAttribute);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._trailingSlash = this.options.trailingSlash;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) {\n if (!this.matchRoot()) return this.notfound();\n return false;\n }\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return this.notfound();\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n }) || this.notfound();\n },\n\n // When no route could be matched, this method is called internally to\n // trigger the `'notfound'` event. It returns `false` so that it can be used\n // in tail position.\n notfound: function() {\n this.trigger('notfound');\n return false;\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Strip trailing slash on the root unless _trailingSlash is true\n var rootPath = this.root;\n if (!this._trailingSlash && (fragment === '' || fragment.charAt(0) === '?')) {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n // Provide useful information when things go wrong. This method is not meant\n // to be used directly; it merely provides the necessary introspection for the\n // external `debugInfo` function.\n Backbone._debug = function() {\n return {root: root, _: _};\n };\n\n return Backbone;\n});\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginButton.vue?vue&type=template&id=bbf83d00&scoped=true\"\nimport script from \"./LoginButton.vue?vue&type=script&lang=js\"\nexport * from \"./LoginButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bbf83d00\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcButton',{attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"wide\":true,\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('div',{staticClass:\"submit-wrapper__icon icon-loading-small-dark\"}):_c('ArrowRight',{staticClass:\"submit-wrapper__icon\"})]},proxy:true}])},[_vm._v(\"\\n\\t\"+_vm._s(!_vm.loading ? _vm.value : _vm.valueLoading)+\"\\n\\t\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\tcomputed: {\n\t\tuserNameInputLengthIs255() {\n\t\t\treturn this.user.length >= 255\n\t\t},\n\t\tuserInputHelperText() {\n\t\t\tif (this.userNameInputLengthIs255) {\n\t\t\t\treturn t('core', 'Email length is at max (255)')\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=f91ba7fe&scoped=true\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f91ba7fe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"method\":\"post\",\"name\":\"login\",\"action\":_vm.loginActionUrl},on:{\"submit\":_vm.submit}},[_c('fieldset',{staticClass:\"login-form__fieldset\",attrs:{\"data-login-form\":\"\"}},[(_vm.apacheAuthFailed)?_c('NcNoteCard',{attrs:{\"title\":_vm.t('core', 'Server side authentication failed!'),\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.csrfCheckFailed)?_c('NcNoteCard',{attrs:{\"heading\":_vm.t('core', 'Session error'),\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'It appears your session token has expired, please refresh the page and try again.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.messages.length > 0)?_c('NcNoteCard',_vm._l((_vm.messages),function(message,index){return _c('div',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(message)),_c('br')])}),0):_vm._e(),_vm._v(\" \"),(_vm.internalException)?_c('NcNoteCard',{class:_vm.t('core', 'An internal error occurred.'),attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please try again or contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hidden\",attrs:{\"id\":\"message\"}},[_c('img',{staticClass:\"float-spinner\",attrs:{\"alt\":\"\",\"src\":_vm.loadingIcon}}),_vm._v(\" \"),_c('span',{attrs:{\"id\":\"messageText\"}}),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})]),_vm._v(\" \"),_c('h2',{staticClass:\"login-form__headline\",attrs:{\"data-login-form-headline\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.headlineText)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{ref:\"user\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"user\",\"label\":_vm.loginText,\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"none\",\"spellchecking\":false,\"autocomplete\":_vm.autoCompleteAllowed ? 'username' : 'off',\"required\":\"\",\"error\":_vm.userNameInputLengthIs255,\"helper-text\":_vm.userInputHelperText,\"data-login-form-input-user\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"password\",\"name\":\"password\",\"spellchecking\":false,\"autocapitalize\":\"none\",\"autocomplete\":_vm.autoCompleteAllowed ? 'current-password' : 'off',\"label\":_vm.t('core', 'Password'),\"helper-text\":_vm.errorLabel,\"error\":_vm.isError,\"visible\":_vm.visible,\"data-login-form-input-password\":\"\",\"required\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_vm._v(\" \"),(_vm.remembermeAllowed)?_c('NcCheckboxRadioSwitch',{ref:\"rememberme\",attrs:{\"id\":\"rememberme\",\"name\":\"rememberme\",\"value\":\"1\",\"data-login-form-input-rememberme\":\"\"},model:{value:(_vm.rememberme),callback:function ($$v) {_vm.rememberme=$$v},expression:\"rememberme\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Remember me'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"data-login-form-submit\":\"\",\"loading\":_vm.loading}}),_vm._v(\" \"),(_vm.redirectUrl)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"redirect_url\"},domProps:{\"value\":_vm.redirectUrl}}):_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone\"},domProps:{\"value\":_vm.timezone}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone_offset\"},domProps:{\"value\":_vm.timezoneOffset}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"requesttoken\"},domProps:{\"value\":_vm.requestToken}}),_vm._v(\" \"),(_vm.directLogin)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"direct\",\"value\":\"1\"}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Determine if the browser is capable of Webauthn\n */\nexport function browserSupportsWebAuthn() {\n return _browserSupportsWebAuthnInternals.stubThis(globalThis?.PublicKeyCredential !== undefined &&\n typeof globalThis.PublicKeyCredential === 'function');\n}\n/**\n * Make it possible to stub the return value during testing\n * @ignore Don't include this in docs output\n */\nexport const _browserSupportsWebAuthnInternals = {\n stubThis: (value) => value,\n};\n","/**\n * A custom Error used to return a more nuanced error detailing _why_ one of the eight documented\n * errors in the spec was raised after calling `navigator.credentials.create()` or\n * `navigator.credentials.get()`:\n *\n * - `AbortError`\n * - `ConstraintError`\n * - `InvalidStateError`\n * - `NotAllowedError`\n * - `NotSupportedError`\n * - `SecurityError`\n * - `TypeError`\n * - `UnknownError`\n *\n * Error messages were determined through investigation of the spec to determine under which\n * scenarios a given error would be raised.\n */\nexport class WebAuthnError extends Error {\n constructor({ message, code, cause, name, }) {\n // @ts-ignore: help Rollup understand that `cause` is okay to set\n super(message, { cause });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = name ?? cause.name;\n this.code = code;\n }\n}\n","class BaseWebAuthnAbortService {\n constructor() {\n Object.defineProperty(this, \"controller\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n createNewAbortSignal() {\n // Abort any existing calls to navigator.credentials.create() or navigator.credentials.get()\n if (this.controller) {\n const abortError = new Error('Cancelling existing WebAuthn API call for new one');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n }\n const newController = new AbortController();\n this.controller = newController;\n return newController.signal;\n }\n cancelCeremony() {\n if (this.controller) {\n const abortError = new Error('Manually cancelling existing WebAuthn API call');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n this.controller = undefined;\n }\n }\n}\n/**\n * A service singleton to help ensure that only a single WebAuthn ceremony is active at a time.\n *\n * Users of **@simplewebauthn/browser** shouldn't typically need to use this, but it can help e.g.\n * developers building projects that use client-side routing to better control the behavior of\n * their UX in response to router navigation events.\n */\nexport const WebAuthnAbortService = new BaseWebAuthnAbortService();\n","/**\n * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various\n * credential response ArrayBuffers to string for sending back to the server as JSON.\n *\n * Helper method to compliment `base64URLStringToBuffer`\n */\nexport function bufferToBase64URLString(buffer) {\n const bytes = new Uint8Array(buffer);\n let str = '';\n for (const charCode of bytes) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n return base64String.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n}\n","/**\n * Convert from a Base64URL-encoded string to an Array Buffer. Best used when converting a\n * credential ID from a JSON string to an ArrayBuffer, like in allowCredentials or\n * excludeCredentials\n *\n * Helper method to compliment `bufferToBase64URLString`\n */\nexport function base64URLStringToBuffer(base64URLString) {\n // Convert from Base64URL to Base64\n const base64 = base64URLString.replace(/-/g, '+').replace(/_/g, '/');\n /**\n * Pad with '=' until it's a multiple of four\n * (4 - (85 % 4 = 1) = 3) % 4 = 3 padding\n * (4 - (86 % 4 = 2) = 2) % 4 = 2 padding\n * (4 - (87 % 4 = 3) = 1) % 4 = 1 padding\n * (4 - (88 % 4 = 0) = 4) % 4 = 0 padding\n */\n const padLength = (4 - (base64.length % 4)) % 4;\n const padded = base64.padEnd(base64.length + padLength, '=');\n // Convert to a binary string\n const binary = atob(padded);\n // Convert binary string to buffer\n const buffer = new ArrayBuffer(binary.length);\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\n","import { browserSupportsWebAuthn } from './browserSupportsWebAuthn.js';\n/**\n * Determine if the browser supports conditional UI, so that WebAuthn credentials can\n * be shown to the user in the browser's typical password autofill popup.\n */\nexport function browserSupportsWebAuthnAutofill() {\n if (!browserSupportsWebAuthn()) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n /**\n * I don't like the `as unknown` here but there's a `declare var PublicKeyCredential` in\n * TS' DOM lib that's making it difficult for me to just go `as PublicKeyCredentialFuture` as I\n * want. I think I'm fine with this for now since it's _supposed_ to be temporary, until TS types\n * have a chance to catch up.\n */\n const globalPublicKeyCredential = globalThis\n .PublicKeyCredential;\n if (globalPublicKeyCredential?.isConditionalMediationAvailable === undefined) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n return _browserSupportsWebAuthnAutofillInternals.stubThis(globalPublicKeyCredential.isConditionalMediationAvailable());\n}\n// Make it possible to stub the return value during testing\nexport const _browserSupportsWebAuthnAutofillInternals = {\n stubThis: (value) => value,\n};\n","import { base64URLStringToBuffer } from './base64URLStringToBuffer.js';\nexport function toPublicKeyCredentialDescriptor(descriptor) {\n const { id } = descriptor;\n return {\n ...descriptor,\n id: base64URLStringToBuffer(id),\n /**\n * `descriptor.transports` is an array of our `AuthenticatorTransportFuture` that includes newer\n * transports that TypeScript's DOM lib is ignorant of. Convince TS that our list of transports\n * are fine to pass to WebAuthn since browsers will recognize the new value.\n */\n transports: descriptor.transports,\n };\n}\n","const attachments = ['cross-platform', 'platform'];\n/**\n * If possible coerce a `string` value into a known `AuthenticatorAttachment`\n */\nexport function toAuthenticatorAttachment(attachment) {\n if (!attachment) {\n return;\n }\n if (attachments.indexOf(attachment) < 0) {\n return;\n }\n return attachment;\n}\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LockOpen.vue?vue&type=template&id=d7513faa\"\nimport script from \"./LockOpen.vue?vue&type=script&lang=js\"\nexport * from \"./LockOpen.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-open-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { startAuthentication as startWebauthnAuthentication } from '@simplewebauthn/browser';\nimport logger from '../logger.js';\nexport class NoValidCredentials extends Error {\n}\n/**\n * Start webautn authentication\n * This loads the challenge, connects to the authenticator and returns the repose that needs to be sent to the server.\n *\n * @param loginName Name to login\n */\nexport async function startAuthentication(loginName) {\n const url = generateUrl('/login/webauthn/start');\n const { data } = await Axios.post(url, { loginName });\n if (!data.allowCredentials || data.allowCredentials.length === 0) {\n logger.error('No valid credentials returned for webauthn');\n throw new NoValidCredentials();\n }\n return await startWebauthnAuthentication({ optionsJSON: data });\n}\n/**\n * Verify webauthn authentication\n *\n * @param authData The authentication data to sent to the server\n */\nexport async function finishAuthentication(authData) {\n const url = generateUrl('/login/webauthn/finish');\n const { data } = await Axios.post(url, { data: JSON.stringify(authData) });\n return data;\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"","import { bufferToBase64URLString } from '../helpers/bufferToBase64URLString.js';\nimport { base64URLStringToBuffer } from '../helpers/base64URLStringToBuffer.js';\nimport { browserSupportsWebAuthn } from '../helpers/browserSupportsWebAuthn.js';\nimport { browserSupportsWebAuthnAutofill } from '../helpers/browserSupportsWebAuthnAutofill.js';\nimport { toPublicKeyCredentialDescriptor } from '../helpers/toPublicKeyCredentialDescriptor.js';\nimport { identifyAuthenticationError } from '../helpers/identifyAuthenticationError.js';\nimport { WebAuthnAbortService } from '../helpers/webAuthnAbortService.js';\nimport { toAuthenticatorAttachment } from '../helpers/toAuthenticatorAttachment.js';\n/**\n * Begin authenticator \"login\" via WebAuthn assertion\n *\n * @param optionsJSON Output from **@simplewebauthn/server**'s `generateAuthenticationOptions()`\n * @param useBrowserAutofill (Optional) Initialize conditional UI to enable logging in via browser autofill prompts. Defaults to `false`.\n * @param verifyBrowserAutofillInput (Optional) Ensure a suitable `` element is present when `useBrowserAutofill` is `true`. Defaults to `true`.\n */\nexport async function startAuthentication(options) {\n // @ts-ignore: Intentionally check for old call structure to warn about improper API call\n if (!options.optionsJSON && options.challenge) {\n console.warn('startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.');\n // @ts-ignore: Reassign the options, passed in as a positional argument, to the expected variable\n options = { optionsJSON: options };\n }\n const { optionsJSON, useBrowserAutofill = false, verifyBrowserAutofillInput = true, } = options;\n if (!browserSupportsWebAuthn()) {\n throw new Error('WebAuthn is not supported in this browser');\n }\n // We need to avoid passing empty array to avoid blocking retrieval\n // of public key\n let allowCredentials;\n if (optionsJSON.allowCredentials?.length !== 0) {\n allowCredentials = optionsJSON.allowCredentials?.map(toPublicKeyCredentialDescriptor);\n }\n // We need to convert some values to Uint8Arrays before passing the credentials to the navigator\n const publicKey = {\n ...optionsJSON,\n challenge: base64URLStringToBuffer(optionsJSON.challenge),\n allowCredentials,\n };\n // Prepare options for `.get()`\n const getOptions = {};\n /**\n * Set up the page to prompt the user to select a credential for authentication via the browser's\n * input autofill mechanism.\n */\n if (useBrowserAutofill) {\n if (!(await browserSupportsWebAuthnAutofill())) {\n throw Error('Browser does not support WebAuthn autofill');\n }\n // Check for an with \"webauthn\" in its `autocomplete` attribute\n const eligibleInputs = document.querySelectorAll(\"input[autocomplete$='webauthn']\");\n // WebAuthn autofill requires at least one valid input\n if (eligibleInputs.length < 1 && verifyBrowserAutofillInput) {\n throw Error('No with \"webauthn\" as the only or last value in its `autocomplete` attribute was detected');\n }\n // `CredentialMediationRequirement` doesn't know about \"conditional\" yet as of\n // typescript@4.6.3\n getOptions.mediation = 'conditional';\n // Conditional UI requires an empty allow list\n publicKey.allowCredentials = [];\n }\n // Finalize options\n getOptions.publicKey = publicKey;\n // Set up the ability to cancel this request if the user attempts another\n getOptions.signal = WebAuthnAbortService.createNewAbortSignal();\n // Wait for the user to complete assertion\n let credential;\n try {\n credential = (await navigator.credentials.get(getOptions));\n }\n catch (err) {\n throw identifyAuthenticationError({ error: err, options: getOptions });\n }\n if (!credential) {\n throw new Error('Authentication was not completed');\n }\n const { id, rawId, response, type } = credential;\n let userHandle = undefined;\n if (response.userHandle) {\n userHandle = bufferToBase64URLString(response.userHandle);\n }\n // Convert values to base64 to make it easier to send back to the server\n return {\n id,\n rawId: bufferToBase64URLString(rawId),\n response: {\n authenticatorData: bufferToBase64URLString(response.authenticatorData),\n clientDataJSON: bufferToBase64URLString(response.clientDataJSON),\n signature: bufferToBase64URLString(response.signature),\n userHandle,\n },\n type,\n clientExtensionResults: credential.getClientExtensionResults(),\n authenticatorAttachment: toAuthenticatorAttachment(credential.authenticatorAttachment),\n };\n}\n","import { isValidDomain } from './isValidDomain.js';\nimport { WebAuthnError } from './webAuthnError.js';\n/**\n * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.get()`\n */\nexport function identifyAuthenticationError({ error, options, }) {\n const { publicKey } = options;\n if (!publicKey) {\n throw Error('options was missing required publicKey property');\n }\n if (error.name === 'AbortError') {\n if (options.signal instanceof AbortSignal) {\n // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 16)\n return new WebAuthnError({\n message: 'Authentication ceremony was sent an abort signal',\n code: 'ERROR_CEREMONY_ABORTED',\n cause: error,\n });\n }\n }\n else if (error.name === 'NotAllowedError') {\n /**\n * Pass the error directly through. Platforms are overloading this error beyond what the spec\n * defines and we don't want to overwrite potentially useful error messages.\n */\n return new WebAuthnError({\n message: error.message,\n code: 'ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY',\n cause: error,\n });\n }\n else if (error.name === 'SecurityError') {\n const effectiveDomain = globalThis.location.hostname;\n if (!isValidDomain(effectiveDomain)) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 5)\n return new WebAuthnError({\n message: `${globalThis.location.hostname} is an invalid domain`,\n code: 'ERROR_INVALID_DOMAIN',\n cause: error,\n });\n }\n else if (publicKey.rpId !== effectiveDomain) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 6)\n return new WebAuthnError({\n message: `The RP ID \"${publicKey.rpId}\" is invalid for this domain`,\n code: 'ERROR_INVALID_RP_ID',\n cause: error,\n });\n }\n }\n else if (error.name === 'UnknownError') {\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 1)\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 12)\n return new WebAuthnError({\n message: 'The authenticator was unable to process the specified options, or could not create a new assertion signature',\n code: 'ERROR_AUTHENTICATOR_GENERAL_ERROR',\n cause: error,\n });\n }\n return error;\n}\n","/**\n * A simple test to determine if a hostname is a properly-formatted domain name\n *\n * A \"valid domain\" is defined here: https://url.spec.whatwg.org/#valid-domain\n *\n * Regex sourced from here:\n * https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n */\nexport function isValidDomain(hostname) {\n return (\n // Consider localhost valid as well since it's okay wrt Secure Contexts\n hostname === 'localhost' ||\n /^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i.test(hostname));\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PasswordLessLoginForm.vue?vue&type=template&id=0b57a680&scoped=true\"\nimport script from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b57a680\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return ((_vm.isHttps || _vm.isLocalhost) && _vm.supportsWebauthn)?_c('form',{ref:\"loginForm\",staticClass:\"password-less-login-form\",attrs:{\"aria-labelledby\":\"password-less-login-form-title\",\"method\":\"post\",\"name\":\"login\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',{attrs:{\"id\":\"password-less-login-form-title\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"required\":\"\",\"model-value\":_vm.user,\"autocomplete\":_vm.autoCompleteAllowed ? 'on' : 'off',\"error\":!_vm.validCredentials,\"label\":_vm.t('core', 'Login or email'),\"placeholder\":_vm.t('core', 'Login or email'),\"helper-text\":!_vm.validCredentials ? _vm.t('core', 'Your account is not setup for passwordless login.') : ''},on:{\"update:value\":_vm.changeUsername}}),_vm._v(\" \"),(_vm.validCredentials)?_c('LoginButton',{attrs:{\"loading\":_vm.loading},on:{\"click\":_vm.authenticate}}):_vm._e()],1):(!_vm.isHttps && !_vm.isLocalhost)?_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Your connection is not secure'),\"description\":_vm.t('core', 'Passwordless authentication is only available over a secure connection.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockOpenIcon')]},proxy:true}])}):_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Browser not supported'),\"description\":_vm.t('core', 'Passwordless authentication is not supported in your browser.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InformationIcon')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"reset-password-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('core', 'Reset password')))]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"id\":\"user\",\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"off\",\"label\":_vm.t('core', 'Login or email'),\"error\":_vm.userNameInputLengthIs255,\"helper-text\":_vm.userInputHelperText,\"required\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password')}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){return _vm.$emit('abort')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Back to login'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.message === 'send-success')?_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'If this account exists, a password reset message has been sent to its email address. If you do not receive it, verify your email address and/or Login, check your spam/junk folders or ask your local administration for help.'))+\"\\n\\t\")]):(_vm.message === 'send-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Couldn\\'t send reset email. Please contact your administrator.'))+\"\\n\\t\")]):(_vm.message === 'reset-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Password cannot be changed. Please contact your administrator.'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=759a0fdd&scoped=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"759a0fdd\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UpdatePassword.vue?vue&type=template&id=2c0ecaf9&scoped=true\"\nimport script from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nexport * from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nimport style0 from \"./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c0ecaf9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('fieldset',[_c('p',[_c('label',{staticClass:\"infield\",attrs:{\"for\":\"password\"}},[_vm._v(_vm._s(_vm.t('core', 'New password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],attrs:{\"id\":\"password\",\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"new-password\",\"autocapitalize\":\"none\",\"spellcheck\":\"false\",\"required\":\"\",\"placeholder\":_vm.t('core', 'New password')},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing)return;_vm.password=$event.target.value}}})]),_vm._v(\" \"),(_vm.encrypted)?_c('div',{staticClass:\"update\"},[_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your files are encrypted. There will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.proceed),expression:\"proceed\"}],staticClass:\"checkbox\",attrs:{\"id\":\"encrypted-continue\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.proceed)?_vm._i(_vm.proceed,null)>-1:(_vm.proceed)},on:{\"change\":function($event){var $$a=_vm.proceed,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.proceed=$$a.concat([$$v]))}else{$$i>-1&&(_vm.proceed=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.proceed=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"encrypted-continue\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'I know what I\\'m doing'))+\"\\n\\t\\t\\t\")])]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password'),\"value-loading\":_vm.t('core', 'Resetting password')}}),_vm._v(\" \"),(_vm.error && _vm.message)?_c('p',{class:{ warning: _vm.error }},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\\t\")]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\n/**\n *\n * @param {string} url the URL to check\n * @return {boolean}\n */\nfunction isRelativeUrl(url) {\n\treturn !url.startsWith('https://') && !url.startsWith('http://')\n}\n\n/**\n * @param {string} url The URL to check\n * @return {boolean} true if the URL points to this nextcloud instance\n */\nfunction isNextcloudUrl(url) {\n\tconst nextcloudBaseUrl = window.location.protocol + '//' + window.location.host + getRootUrl()\n\t// if the URL is absolute and starts with the baseUrl+rootUrl\n\t// OR if the URL is relative and starts with rootUrl\n\treturn url.startsWith(nextcloudBaseUrl)\n\t\t|| (isRelativeUrl(url) && url.startsWith(getRootUrl()))\n}\n\n/**\n * Check if a user was logged in but is now logged-out.\n * If this is the case then the user will be forwarded to the login page.\n *\n * @return {Promise}\n */\nasync function checkLoginStatus() {\n\t// skip if no logged in user\n\tif (getCurrentUser() === null) {\n\t\treturn\n\t}\n\n\t// skip if already running\n\tif (checkLoginStatus.running === true) {\n\t\treturn\n\t}\n\n\t// only run one request in parallel\n\tcheckLoginStatus.running = true\n\n\ttry {\n\t\t// We need to check this as a 401 in the first place could also come from other reasons\n\t\tconst { status } = await window.fetch(generateUrl('/apps/files'))\n\t\tif (status === 401) {\n\t\t\tlogger.warn('User session was terminated, forwarding to login page.')\n\t\t\tawait wipeBrowserStorages()\n\t\t\twindow.location = generateUrl('/login?redirect_url={url}', {\n\t\t\t\turl: window.location.pathname + window.location.search + window.location.hash,\n\t\t\t})\n\t\t}\n\t} catch (error) {\n\t\tlogger.warn('Could not check login-state', { error })\n\t} finally {\n\t\tdelete checkLoginStatus.running\n\t}\n}\n\n/**\n * Clear all Browser storages connected to current origin.\n *\n * @return {Promise}\n */\nexport async function wipeBrowserStorages() {\n\ttry {\n\t\twindow.localStorage.clear()\n\t\twindow.sessionStorage.clear()\n\t\tconst indexedDBList = await window.indexedDB.databases()\n\t\tfor (const indexedDB of indexedDBList) {\n\t\t\tawait window.indexedDB.deleteDatabase(indexedDB.name)\n\t\t}\n\t\tlogger.debug('Browser storages cleared')\n\t} catch (error) {\n\t\tlogger.error('Could not clear browser storages', { error })\n\t}\n}\n\n/**\n * Intercept XMLHttpRequest and fetch API calls to add X-Requested-With header\n *\n * This is also done in @nextcloud/axios but not all requests pass through that\n */\nexport function interceptRequests() {\n\tXMLHttpRequest.prototype.open = (function(open) {\n\t\treturn function(method, url) {\n\t\t\topen.apply(this, arguments)\n\t\t\tif (isNextcloudUrl(url)) {\n\t\t\t\tif (!this.getResponseHeader('X-Requested-With')) {\n\t\t\t\t\tthis.setRequestHeader('X-Requested-With', 'XMLHttpRequest')\n\t\t\t\t}\n\t\t\t\tthis.addEventListener('loadend', function() {\n\t\t\t\t\tif (this.status === 401) {\n\t\t\t\t\t\tcheckLoginStatus()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})(XMLHttpRequest.prototype.open)\n\n\twindow.fetch = (function(fetch) {\n\t\treturn async (resource, options) => {\n\t\t\t// fetch allows the `input` to be either a Request object or any stringifyable value\n\t\t\tif (!isNextcloudUrl(resource.url ?? resource.toString())) {\n\t\t\t\treturn await fetch(resource, options)\n\t\t\t}\n\t\t\tif (!options) {\n\t\t\t\toptions = {}\n\t\t\t}\n\t\t\tif (!options.headers) {\n\t\t\t\toptions.headers = new Headers()\n\t\t\t}\n\n\t\t\tif (options.headers instanceof Headers && !options.headers.has('X-Requested-With')) {\n\t\t\t\toptions.headers.append('X-Requested-With', 'XMLHttpRequest')\n\t\t\t} else if (options.headers instanceof Object && !options.headers['X-Requested-With']) {\n\t\t\t\toptions.headers['X-Requested-With'] = 'XMLHttpRequest'\n\t\t\t}\n\n\t\t\tconst response = await fetch(resource, options)\n\t\t\tif (response.status === 401) {\n\t\t\t\tcheckLoginStatus()\n\t\t\t}\n\t\t\treturn response\n\t\t}\n\t})(window.fetch)\n}\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=518c0816&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"518c0816\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"guest-box login-box\"},[(!_vm.hideLoginForm || _vm.directLogin)?[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.passwordlessLogin && !_vm.resetPassword && _vm.resetPasswordTarget === '')?_c('div',{staticClass:\"login-box__wrapper\"},[_c('LoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"direct-login\":_vm.directLogin,\"messages\":_vm.messages,\"errors\":_vm.errors,\"throttle-delay\":_vm.throttleDelay,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"rememberme-allowed\":_vm.remembermeAllowed,\"email-states\":_vm.emailStates},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),(_vm.hasPasswordless)?_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.passwordlessLogin = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.canResetPassword && _vm.resetPasswordLink !== '')?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"href\":_vm.resetPasswordLink,\"variant\":\"tertiary-no-background\",\"wide\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):(_vm.canResetPassword && !_vm.resetPassword)?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.resetPassword = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):(!_vm.loading && _vm.passwordlessLogin)?_c('div',{key:\"reset-pw-less\",staticClass:\"login-additional login-box__wrapper\"},[_c('PasswordLessLoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"is-https\":_vm.isHttps,\"is-localhost\":_vm.isLocalhost},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Back to login form'),\"wide\":true},on:{\"click\":function($event){_vm.passwordlessLogin = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Back'))+\"\\n\\t\\t\\t\\t\")])],1):(!_vm.loading && _vm.canResetPassword)?_c('div',{key:\"reset-can-reset\",staticClass:\"login-additional\"},[_c('div',{staticClass:\"lost-password-container\"},[(_vm.resetPassword)?_c('ResetPassword',{attrs:{\"username\":_vm.user,\"reset-password-link\":_vm.resetPasswordLink},on:{\"update:username\":function($event){_vm.user=$event},\"abort\":function($event){_vm.resetPassword = false}}}):_vm._e()],1)]):(_vm.resetPasswordTarget !== '')?_c('div',[_c('UpdatePassword',{attrs:{\"username\":_vm.user,\"reset-password-target\":_vm.resetPasswordTarget},on:{\"update:username\":function($event){_vm.user=$event},\"done\":_vm.passwordResetFinished}})],1):_vm._e()])]:[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('NcNoteCard',{attrs:{\"type\":\"info\",\"title\":_vm.t('core', 'Login form is disabled.')}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'The Nextcloud login form is disabled. Use another login option if available or contact your administration.'))+\"\\n\\t\\t\\t\")])],1)],_vm._v(\" \"),_c('div',{staticClass:\"login-box__alternative-logins\",attrs:{\"id\":\"alternative-logins\"}},_vm._l((_vm.alternativeLogins),function(alternativeLogin,index){return _c('NcButton',{key:index,class:[alternativeLogin.class],attrs:{\"variant\":\"secondary\",\"wide\":true,\"role\":\"link\",\"href\":alternativeLogin.href}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(alternativeLogin.name)+\"\\n\\t\\t\")])}),1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst isAdmin = !!window._oc_isadmin\n\n/**\n * Returns whether the current user is an administrator\n *\n * @return {boolean} true if the user is an admin, false otherwise\n * @since 9.0.0\n */\nexport const isUserAdmin = () => isAdmin\n","/*!\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @deprecated 16.0.0 Use OCP.AppConfig instead\n */\nexport const appConfig = window.oc_appconfig || {}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\nlet dynamicSlideToggleEnabled = false\n\nconst Apps = {\n\tenableDynamicSlideToggle() {\n\t\tdynamicSlideToggleEnabled = true\n\t},\n}\n\n/**\n * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings\n *\n * @param {object} [$el] sidebar element to show, defaults to $('#app-sidebar')\n */\nApps.showAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.removeClass('disappear').show()\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Shows the #app-sidebar and removes .with-app-sidebar from subsequent\n * siblings\n *\n * @param {object} [$el] sidebar element to hide, defaults to $('#app-sidebar')\n */\nApps.hideAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.hide().addClass('disappear')\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Provides a way to slide down a target area through a button and slide it\n * up if the user clicks somewhere else. Used for the news app settings and\n * add new field.\n *\n * Usage:\n * \n *
I'm sliding up
\n */\nexport function registerAppsSlideToggle() {\n\tlet buttons = $('[data-apps-slide-toggle]')\n\n\tif (buttons.length === 0) {\n\t\t$('#app-navigation').addClass('without-app-settings')\n\t}\n\n\t$(document).click(function(event) {\n\t\tif (dynamicSlideToggleEnabled) {\n\t\t\tbuttons = $('[data-apps-slide-toggle]')\n\t\t}\n\n\t\tbuttons.each(function(index, button) {\n\t\t\tconst areaSelector = $(button).data('apps-slide-toggle')\n\t\t\tconst area = $(areaSelector)\n\n\t\t\t/**\n\t\t\t *\n\t\t\t */\n\t\t\tfunction hideArea() {\n\t\t\t\tarea.slideUp(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('hide'))\n\t\t\t\t})\n\t\t\t\tarea.removeClass('opened')\n\t\t\t\t$(button).removeClass('opened')\n\t\t\t\t$(button).attr('aria-expanded', 'false')\n\t\t\t}\n\n\t\t\t/**\n\t\t\t *\n\t\t\t */\n\t\t\tfunction showArea() {\n\t\t\t\tarea.slideDown(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('show'))\n\t\t\t\t})\n\t\t\t\tarea.addClass('opened')\n\t\t\t\t$(button).addClass('opened')\n\t\t\t\t$(button).attr('aria-expanded', 'true')\n\t\t\t\tconst input = $(areaSelector + ' [autofocus]')\n\t\t\t\tif (input.length === 1) {\n\t\t\t\t\tinput.focus()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// do nothing if the area is animated\n\t\t\tif (!area.is(':animated')) {\n\t\t\t\t// button toggles the area\n\t\t\t\tif ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) {\n\t\t\t\t\tif (area.is(':visible')) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshowArea()\n\t\t\t\t\t}\n\n\t\t\t\t\t// all other areas that have not been clicked but are open\n\t\t\t\t\t// should be slid up\n\t\t\t\t} else {\n\t\t\t\t\tconst closest = $(event.target).closest(areaSelector)\n\t\t\t\t\tif (area.is(':visible') && closest[0] !== area[0]) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t})\n}\n\nexport default Apps\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst appswebroots = (window._oc_appswebroots !== undefined) ? window._oc_appswebroots : false\n\nexport default appswebroots\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { dav } from 'davclient.js'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\nconst methodMap = {\n\tcreate: 'POST',\n\tupdate: 'PROPPATCH',\n\tpatch: 'PROPPATCH',\n\tdelete: 'DELETE',\n\tread: 'PROPFIND',\n}\n\n/**\n * Throw an error when a URL is needed, and none is supplied.\n */\nfunction urlError() {\n\tthrow new Error('A \"url\" property or function must be specified')\n}\n\n/**\n * Convert a single propfind result to JSON\n *\n * @param {object} result\n * @param {object} davProperties properties mapping\n */\nfunction parsePropFindResult(result, davProperties) {\n\tif (_.isArray(result)) {\n\t\treturn _.map(result, function(subResult) {\n\t\t\treturn parsePropFindResult(subResult, davProperties)\n\t\t})\n\t}\n\tconst props = {\n\t\thref: result.href,\n\t}\n\n\t_.each(result.propStat, function(propStat) {\n\t\tif (propStat.status !== 'HTTP/1.1 200 OK') {\n\t\t\treturn\n\t\t}\n\n\t\tfor (const key in propStat.properties) {\n\t\t\tlet propKey = key\n\t\t\tif (key in davProperties) {\n\t\t\t\tpropKey = davProperties[key]\n\t\t\t}\n\t\t\tprops[propKey] = propStat.properties[key]\n\t\t}\n\t})\n\n\tif (!props.id) {\n\t\t// parse id from href\n\t\tprops.id = parseIdFromLocation(props.href)\n\t}\n\n\treturn props\n}\n\n/**\n * Parse ID from location\n *\n * @param {string} url url\n * @return {string} id\n */\nfunction parseIdFromLocation(url) {\n\tconst queryPos = url.indexOf('?')\n\tif (queryPos > 0) {\n\t\turl = url.substr(0, queryPos)\n\t}\n\n\tconst parts = url.split('/')\n\tlet result\n\tdo {\n\t\tresult = parts[parts.length - 1]\n\t\tparts.pop()\n\t\t// note: first result can be empty when there is a trailing slash,\n\t\t// so we take the part before that\n\t} while (!result && parts.length > 0)\n\n\treturn result\n}\n\n/**\n *\n * @param {number} status\n */\nfunction isSuccessStatus(status) {\n\treturn status >= 200 && status <= 299\n}\n\n/**\n *\n * @param attrs\n * @param davProperties\n */\nfunction convertModelAttributesToDavProperties(attrs, davProperties) {\n\tconst props = {}\n\tlet key\n\tfor (key in attrs) {\n\t\tlet changedProp = davProperties[key]\n\t\tlet value = attrs[key]\n\t\tif (!changedProp) {\n\t\t\tlogger.warn('No matching DAV property for property \"' + key)\n\t\t\tchangedProp = key\n\t\t}\n\t\tif (_.isBoolean(value) || _.isNumber(value)) {\n\t\t\t// convert to string\n\t\t\tvalue = '' + value\n\t\t}\n\t\tprops[changedProp] = value\n\t}\n\treturn props\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callPropFind(client, options, model, headers) {\n\treturn client.propFind(\n\t\toptions.url,\n\t\t_.values(options.davProperties) || [],\n\t\toptions.depth,\n\t\theaders,\n\t).then(function(response) {\n\t\tif (isSuccessStatus(response.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\tconst propsMapping = _.invert(options.davProperties)\n\t\t\t\tconst results = parsePropFindResult(response.body, propsMapping)\n\t\t\t\tif (options.depth > 0) {\n\t\t\t\t\t// discard root entry\n\t\t\t\t\tresults.shift()\n\t\t\t\t}\n\n\t\t\t\toptions.success(results)\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(response)\n\t\t}\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callPropPatch(client, options, model, headers) {\n\treturn client.propPatch(\n\t\toptions.url,\n\t\tconvertModelAttributesToDavProperties(model.changed, options.davProperties),\n\t\theaders,\n\t).then(function(result) {\n\t\tif (isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return the updated model\n\t\t\t\toptions.success(model.toJSON())\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(result)\n\t\t}\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callMkCol(client, options, model, headers) {\n\t// call MKCOL without data, followed by PROPPATCH\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\tnull,\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tcallPropPatch(client, options, model, headers)\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callMethod(client, options, model, headers) {\n\theaders['Content-Type'] = 'application/json'\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\toptions.data,\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tif (_.isFunction(options.success)) {\n\t\t\tif (options.type === 'PUT' || options.type === 'POST' || options.type === 'MKCOL') {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return anything\n\t\t\t\tconst responseJson = result.body || model.toJSON()\n\t\t\t\tconst locationHeader = result.xhr.getResponseHeader('Content-Location')\n\t\t\t\tif (options.type === 'POST' && locationHeader) {\n\t\t\t\t\tresponseJson.id = parseIdFromLocation(locationHeader)\n\t\t\t\t}\n\t\t\t\toptions.success(responseJson)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// if multi-status, parse\n\t\t\tif (result.status === 207) {\n\t\t\t\tconst propsMapping = _.invert(options.davProperties)\n\t\t\t\toptions.success(parsePropFindResult(result.body, propsMapping))\n\t\t\t} else {\n\t\t\t\toptions.success(result.body)\n\t\t\t}\n\t\t}\n\t})\n}\n\n/**\n *\n * @param options\n * @param model\n */\nexport function davCall(options, model) {\n\tconst client = new dav.Client({\n\t\tbaseUrl: options.url,\n\t\txmlNamespaces: _.extend({\n\t\t\t'DAV:': 'd',\n\t\t\t'http://owncloud.org/ns': 'oc',\n\t\t}, options.xmlNamespaces || {}),\n\t})\n\tclient.resolveUrl = function() {\n\t\treturn options.url\n\t}\n\tconst headers = _.extend({\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\trequesttoken: OC.requestToken,\n\t}, options.headers)\n\tif (options.type === 'PROPFIND') {\n\t\treturn callPropFind(client, options, model, headers)\n\t} else if (options.type === 'PROPPATCH') {\n\t\treturn callPropPatch(client, options, model, headers)\n\t} else if (options.type === 'MKCOL') {\n\t\treturn callMkCol(client, options, model, headers)\n\t} else {\n\t\treturn callMethod(client, options, model, headers)\n\t}\n}\n\n/**\n * DAV transport\n *\n * @param Backbone\n */\nexport function davSync(Backbone) {\n\treturn (method, model, options) => {\n\t\tconst params = { type: methodMap[method] || method }\n\t\tconst isCollection = (model instanceof Backbone.Collection)\n\n\t\tif (method === 'update') {\n\t\t// if a model has an inner collection, it must define an\n\t\t// attribute \"hasInnerCollection\" that evaluates to true\n\t\t\tif (model.hasInnerCollection) {\n\t\t\t// if the model itself is a Webdav collection, use MKCOL\n\t\t\t\tparams.type = 'MKCOL'\n\t\t\t} else if (model.usePUT || (model.collection && model.collection.usePUT)) {\n\t\t\t// use PUT instead of PROPPATCH\n\t\t\t\tparams.type = 'PUT'\n\t\t\t}\n\t\t}\n\n\t\t// Ensure that we have a URL.\n\t\tif (!options.url) {\n\t\t\tparams.url = _.result(model, 'url') || urlError()\n\t\t}\n\n\t\t// Ensure that we have the appropriate request data.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tif (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n\t\t\tparams.data = JSON.stringify(options.attrs || model.toJSON(options))\n\t\t}\n\n\t\t// Don't process data on a non-GET request.\n\t\tif (params.type !== 'PROPFIND') {\n\t\t\tparams.processData = false\n\t\t}\n\n\t\tif (params.type === 'PROPFIND' || params.type === 'PROPPATCH') {\n\t\t\tlet davProperties = model.davProperties\n\t\t\tif (!davProperties && model.model) {\n\t\t\t// use dav properties from model in case of collection\n\t\t\t\tdavProperties = model.model.prototype.davProperties\n\t\t\t}\n\t\t\tif (davProperties) {\n\t\t\t\tif (_.isFunction(davProperties)) {\n\t\t\t\t\tparams.davProperties = davProperties.call(model)\n\t\t\t\t} else {\n\t\t\t\t\tparams.davProperties = davProperties\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparams.davProperties = _.extend(params.davProperties || {}, options.davProperties)\n\n\t\t\tif (_.isUndefined(options.depth)) {\n\t\t\t\tif (isCollection) {\n\t\t\t\t\toptions.depth = 1\n\t\t\t\t} else {\n\t\t\t\t\toptions.depth = 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Pass along `textStatus` and `errorThrown` from jQuery.\n\t\tconst error = options.error\n\t\toptions.error = function(xhr, textStatus, errorThrown) {\n\t\t\toptions.textStatus = textStatus\n\t\t\toptions.errorThrown = errorThrown\n\t\t\tif (error) {\n\t\t\t\terror.call(options.context, xhr, textStatus, errorThrown)\n\t\t\t}\n\t\t}\n\n\t\t// Make the request, allowing the user to override any Ajax options.\n\t\tconst xhr = options.xhr = Backbone.davCall(_.extend(params, options), model)\n\t\tmodel.trigger('request', model, xhr, options)\n\t\treturn xhr\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport VendorBackbone from 'backbone'\nimport { davCall, davSync } from './backbone-webdav.js'\n\nconst Backbone = VendorBackbone.noConflict()\n\n// Patch Backbone for DAV\nObject.assign(Backbone, {\n\tdavCall,\n\tdavSync: davSync(Backbone),\n})\n\nexport default Backbone\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst config = window._oc_config || {}\n\nexport default config\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\n/**\n *\n */\nexport function getCurrentUser() {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst base = window._oc_debug\n\nexport const debug = base\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport IconMove from '@mdi/svg/svg/folder-move.svg?raw'\nimport IconCopy from '@mdi/svg/svg/folder-multiple-outline.svg?raw'\nimport { DialogBuilder, FilePickerType, getFilePickerBuilder } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport $ from 'jquery'\nimport { basename } from 'path'\nimport { defineAsyncComponent } from 'vue'\nimport logger from '../logger.js'\nimport OC from './index.js'\n\n/**\n * this class to ease the usage of jquery dialogs\n */\nconst Dialogs = {\n\t// dialog button types\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tYES_NO_BUTTONS: 70,\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tOK_BUTTONS: 71,\n\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CHOOSE: 1,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_MOVE: 2,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY: 3,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY_MOVE: 4,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CUSTOM: 5,\n\n\t/**\n\t * displays alert dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\talert: function(text, title, callback, modal) {\n\t\tthis.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'alert',\n\t\t\tDialogs.OK_BUTTON,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\n\t/**\n\t * displays info dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tinfo: function(text, title, callback, modal) {\n\t\tthis.message(text, title, 'info', Dialogs.OK_BUTTON, callback, modal)\n\t},\n\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirm: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {(number|{type: number, confirm: string, cancel: string, confirmClasses: string})} buttons text content of buttons\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmDestructive: function(text, title, buttons = Dialogs.OK_BUTTONS, callback = () => {}) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(text)\n\t\t\t.setButtons(buttons === Dialogs.OK_BUTTONS\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: Dialogs._getLegacyButtons(buttons, callback))\n\t\t\t.build()\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmHtml: function(text, title, callback) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText('')\n\t\t\t.setButtons([\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'No'),\n\t\t\t\t\tcallback: () => {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t])\n\t\t\t.build()\n\t\t\t.setHTML(text)\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays prompt dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} name name of the input field\n\t * @param {boolean} password whether the input should be a password input\n\t * @return {Promise}\n\t *\n\t * @deprecated Use NcDialog from `@nextcloud/vue` instead\n\t */\n\tprompt: function(text, title, callback, modal, name, password) {\n\t\treturn new Promise((resolve) => {\n\t\t\tspawnDialog(\n\t\t\t\tdefineAsyncComponent(() => import('../components/LegacyDialogPrompt.vue')),\n\t\t\t\t{\n\t\t\t\t\ttext,\n\t\t\t\t\tname: title,\n\t\t\t\t\tcallback,\n\t\t\t\t\tinputName: name,\n\t\t\t\t\tisPassword: !!password,\n\t\t\t\t},\n\t\t\t\t(...args) => {\n\t\t\t\t\tcallback(...args)\n\t\t\t\t\tresolve()\n\t\t\t\t},\n\t\t\t)\n\t\t})\n\t},\n\n\t/**\n\t * Legacy wrapper to the new Vue based filepicker from `@nextcloud/dialogs`\n\t *\n\t * Prefer to use the Vue filepicker directly instead.\n\t *\n\t * In order to pick several types of mime types they need to be passed as an\n\t * array of strings.\n\t *\n\t * When no mime type filter is given only files can be selected. In order to\n\t * be able to select both files and folders \"['*', 'httpd/unix-directory']\"\n\t * should be used instead.\n\t *\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses Choose\n\t * @param {boolean} [multiselect] whether it should be possible to select multiple files\n\t * @param {string[]} [mimetype] mimetype to filter by - directories will always be included\n\t * @param {boolean} [_modal] do not use\n\t * @param {string} [type] Type of file picker : Choose, copy, move, copy and move\n\t * @param {string} [path] path to the folder that the the file can be picket from\n\t * @param {object} [options] additonal options that need to be set\n\t * @param {Function} [options.filter] filter function for advanced filtering\n\t * @param {boolean} [options.allowDirectoryChooser] Allow to select directories\n\t * @deprecated since 27.1.0 use the filepicker from `@nextcloud/dialogs` instead\n\t */\n\t// eslint-disable-next-line no-unused-vars\n\tfilepicker(title, callback, multiselect = false, mimetype = undefined, _modal = undefined, type = FilePickerType.Choose, path = undefined, options = undefined) {\n\t\t/**\n\t\t * Create legacy callback wrapper to support old filepicker syntax\n\t\t *\n\t\t * @param fn The original callback\n\t\t * @param type The file picker type which was used to pick the file(s)\n\t\t */\n\t\tconst legacyCallback = (fn, type) => {\n\t\t\tconst getPath = (node) => {\n\t\t\t\tconst root = node?.root || ''\n\t\t\t\tlet path = node?.path || ''\n\t\t\t\t// TODO: Fix this in @nextcloud/files\n\t\t\t\tif (path.startsWith(root)) {\n\t\t\t\t\tpath = path.slice(root.length) || '/'\n\t\t\t\t}\n\t\t\t\treturn path\n\t\t\t}\n\n\t\t\tif (multiselect) {\n\t\t\t\treturn (nodes) => fn(nodes.map(getPath), type)\n\t\t\t} else {\n\t\t\t\treturn (nodes) => fn(getPath(nodes[0]), type)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Coverting a Node into a legacy file info to support the OC.dialogs.filepicker filter function\n\t\t *\n\t\t * @param node The node to convert\n\t\t */\n\t\tconst nodeToLegacyFile = (node) => ({\n\t\t\tid: node.fileid || null,\n\t\t\tpath: node.path,\n\t\t\tmimetype: node.mime || null,\n\t\t\tmtime: node.mtime?.getTime() || null,\n\t\t\tpermissions: node.permissions,\n\t\t\tname: node.attributes?.displayName || node.basename,\n\t\t\tetag: node.attributes?.etag || null,\n\t\t\thasPreview: node.attributes?.hasPreview || null,\n\t\t\tmountType: node.attributes?.mountType || null,\n\t\t\tquotaAvailableBytes: node.attributes?.quotaAvailableBytes || null,\n\t\t\ticon: null,\n\t\t\tsharePermissions: null,\n\t\t})\n\n\t\tconst builder = getFilePickerBuilder(title)\n\n\t\t// Setup buttons\n\t\tif (type === this.FILEPICKER_TYPE_CUSTOM) {\n\t\t\t(options.buttons || []).forEach((button) => {\n\t\t\t\tbuilder.addButton({\n\t\t\t\t\tcallback: legacyCallback(callback, button.type),\n\t\t\t\t\tlabel: button.text,\n\t\t\t\t\tvariant: button.defaultButton ? 'primary' : 'secondary',\n\t\t\t\t})\n\t\t\t})\n\t\t} else {\n\t\t\tbuilder.setButtonFactory((nodes, path) => {\n\t\t\t\tconst buttons = []\n\t\t\t\tconst [node] = nodes\n\t\t\t\tconst target = node?.displayname || node?.basename || basename(path)\n\n\t\t\t\tif (type === FilePickerType.Choose) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Choose),\n\t\t\t\t\t\tlabel: node && !this.multiSelect ? t('core', 'Choose {file}', { file: target }) : t('core', 'Choose'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.CopyMove || type === FilePickerType.Copy) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Copy),\n\t\t\t\t\t\tlabel: target ? t('core', 'Copy to {target}', { target }) : t('core', 'Copy'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\ticon: IconCopy,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.Move || type === FilePickerType.CopyMove) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Move),\n\t\t\t\t\t\tlabel: target ? t('core', 'Move to {target}', { target }) : t('core', 'Move'),\n\t\t\t\t\t\tvariant: type === FilePickerType.Move ? 'primary' : 'secondary',\n\t\t\t\t\t\ticon: IconMove,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn buttons\n\t\t\t})\n\t\t}\n\n\t\tif (mimetype) {\n\t\t\tbuilder.setMimeTypeFilter(typeof mimetype === 'string' ? [mimetype] : (mimetype || []))\n\t\t}\n\t\tif (typeof options?.filter === 'function') {\n\t\t\tbuilder.setFilter((node) => options.filter(nodeToLegacyFile(node)))\n\t\t}\n\t\tbuilder.allowDirectories(options?.allowDirectoryChooser === true || mimetype?.includes('httpd/unix-directory') || false)\n\t\t\t.setMultiSelect(multiselect)\n\t\t\t.startAt(path)\n\t\t\t.build()\n\t\t\t.pick()\n\t},\n\n\t/**\n\t * Displays raw dialog\n\t * You better use a wrapper instead ...\n\t *\n\t * @param content\n\t * @param title\n\t * @param dialogType\n\t * @param buttons\n\t * @param callback\n\t * @param modal\n\t * @param allowHtml\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tmessage: function(content, title, dialogType, buttons, callback = () => {}, modal, allowHtml) {\n\t\tconst builder = (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(allowHtml ? '' : content)\n\t\t\t.setButtons(Dialogs._getLegacyButtons(buttons, callback))\n\n\t\tswitch (dialogType) {\n\t\t\tcase 'alert':\n\t\t\t\tbuilder.setSeverity('warning')\n\t\t\t\tbreak\n\t\t\tcase 'notice':\n\t\t\t\tbuilder.setSeverity('info')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst dialog = builder.build()\n\n\t\tif (allowHtml) {\n\t\t\tdialog.setHTML(content)\n\t\t}\n\n\t\treturn dialog.show().then(() => {\n\t\t\tif (!callback._clicked) {\n\t\t\t\tcallback(false)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Helper for legacy API\n\t *\n\t * @param buttons\n\t * @param callback\n\t * @deprecated\n\t */\n\t_getLegacyButtons(buttons, callback) {\n\t\tconst buttonList = []\n\n\t\tswitch (typeof buttons === 'object' ? buttons.type : buttons) {\n\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.cancel ?? t('core', 'No'),\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase Dialogs.OK_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'OK'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error('Invalid call to OC.dialogs')\n\t\t\t\tbreak\n\t\t}\n\t\treturn buttonList\n\t},\n\n\t_fileexistsshown: false,\n\t/**\n\t * Displays file exists dialog\n\t *\n\t * @param {object} data upload object\n\t * @param {object} original file with name, size and mtime\n\t * @param {object} replacement file with name, size and mtime\n\t * @param {object} controller with onCancel, onSkip, onReplace and onRename methods\n\t * @return {Promise} jquery promise that resolves after the dialog template was loaded\n\t *\n\t * @deprecated 29.0.0 Use openConflictPicker from the @nextcloud/upload package instead\n\t */\n\tfileexists: function(data, original, replacement, controller) {\n\t\tconst self = this\n\t\tconst dialogDeferred = new $.Deferred()\n\n\t\tconst getCroppedPreview = function(file) {\n\t\t\tconst deferred = new $.Deferred()\n\t\t\t// Only process image files.\n\t\t\tconst type = file.type && file.type.split('/').shift()\n\t\t\tif (window.FileReader && type === 'image') {\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload = function(e) {\n\t\t\t\t\tconst blob = new Blob([e.target.result])\n\t\t\t\t\twindow.URL = window.URL || window.webkitURL\n\t\t\t\t\tconst originalUrl = window.URL.createObjectURL(blob)\n\t\t\t\t\tconst image = new Image()\n\t\t\t\t\timage.src = originalUrl\n\t\t\t\t\timage.onload = function() {\n\t\t\t\t\t\tconst url = crop(image)\n\t\t\t\t\t\tdeferred.resolve(url)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treader.readAsArrayBuffer(file)\n\t\t\t} else {\n\t\t\t\tdeferred.reject()\n\t\t\t}\n\t\t\treturn deferred\n\t\t}\n\n\t\t/**\n\t\t * @param img\n\t\t */\n\t\tfunction crop(img) {\n\t\t\tconst canvas = document.createElement('canvas')\n\t\t\tconst targetSize = 96\n\t\t\tconst width = img.width\n\t\t\tconst height = img.height\n\t\t\tlet x\n\t\t\tlet y\n\n\t\t\t// Calculate the width and height, constraining the proportions\n\t\t\tif (width > height) {\n\t\t\t\ty = 0\n\t\t\t\tx = (width - height) / 2\n\t\t\t} else {\n\t\t\t\ty = (height - width) / 2\n\t\t\t\tx = 0\n\t\t\t}\n\t\t\tconst size = Math.min(width, height)\n\n\t\t\t// Set canvas size to the cropped area\n\t\t\tcanvas.width = size\n\t\t\tcanvas.height = size\n\t\t\tconst ctx = canvas.getContext('2d')\n\t\t\tctx.drawImage(img, x, y, size, size, 0, 0, size, size)\n\n\t\t\t// Resize the canvas to match the destination (right size uses 96px)\n\t\t\tresampleHermite(canvas, size, size, targetSize, targetSize)\n\n\t\t\treturn canvas.toDataURL('image/png', 0.7)\n\t\t}\n\n\t\t/**\n\t\t * Fast image resize/resample using Hermite filter with JavaScript.\n\t\t *\n\t\t * @author ViliusL\n\t\t *\n\t\t * @param {*} canvas\n\t\t * @param {number} W\n\t\t * @param {number} H\n\t\t * @param {number} W2\n\t\t * @param {number} H2\n\t\t */\n\t\tfunction resampleHermite(canvas, W, H, W2, H2) {\n\t\t\tW2 = Math.round(W2)\n\t\t\tH2 = Math.round(H2)\n\t\t\tconst img = canvas.getContext('2d').getImageData(0, 0, W, H)\n\t\t\tconst img2 = canvas.getContext('2d').getImageData(0, 0, W2, H2)\n\t\t\tconst data = img.data\n\t\t\tconst data2 = img2.data\n\t\t\tconst ratio_w = W / W2\n\t\t\tconst ratio_h = H / H2\n\t\t\tconst ratio_w_half = Math.ceil(ratio_w / 2)\n\t\t\tconst ratio_h_half = Math.ceil(ratio_h / 2)\n\n\t\t\tfor (let j = 0; j < H2; j++) {\n\t\t\t\tfor (let i = 0; i < W2; i++) {\n\t\t\t\t\tconst x2 = (i + j * W2) * 4\n\t\t\t\t\tlet weight = 0\n\t\t\t\t\tlet weights = 0\n\t\t\t\t\tlet weights_alpha = 0\n\t\t\t\t\tlet gx_r = 0\n\t\t\t\t\tlet gx_g = 0\n\t\t\t\t\tlet gx_b = 0\n\t\t\t\t\tlet gx_a = 0\n\t\t\t\t\tconst center_y = (j + 0.5) * ratio_h\n\t\t\t\t\tfor (let yy = Math.floor(j * ratio_h); yy < (j + 1) * ratio_h; yy++) {\n\t\t\t\t\t\tconst dy = Math.abs(center_y - (yy + 0.5)) / ratio_h_half\n\t\t\t\t\t\tconst center_x = (i + 0.5) * ratio_w\n\t\t\t\t\t\tconst w0 = dy * dy // pre-calc part of w\n\t\t\t\t\t\tfor (let xx = Math.floor(i * ratio_w); xx < (i + 1) * ratio_w; xx++) {\n\t\t\t\t\t\t\tlet dx = Math.abs(center_x - (xx + 0.5)) / ratio_w_half\n\t\t\t\t\t\t\tconst w = Math.sqrt(w0 + dx * dx)\n\t\t\t\t\t\t\tif (w >= -1 && w <= 1) {\n\t\t\t\t\t\t\t\t// hermite filter\n\t\t\t\t\t\t\t\tweight = 2 * w * w * w - 3 * w * w + 1\n\t\t\t\t\t\t\t\tif (weight > 0) {\n\t\t\t\t\t\t\t\t\tdx = 4 * (xx + yy * W)\n\t\t\t\t\t\t\t\t\t// alpha\n\t\t\t\t\t\t\t\t\tgx_a += weight * data[dx + 3]\n\t\t\t\t\t\t\t\t\tweights_alpha += weight\n\t\t\t\t\t\t\t\t\t// colors\n\t\t\t\t\t\t\t\t\tif (data[dx + 3] < 255) {\n\t\t\t\t\t\t\t\t\t\tweight = weight * data[dx + 3] / 250\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tgx_r += weight * data[dx]\n\t\t\t\t\t\t\t\t\tgx_g += weight * data[dx + 1]\n\t\t\t\t\t\t\t\t\tgx_b += weight * data[dx + 2]\n\t\t\t\t\t\t\t\t\tweights += weight\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata2[x2] = gx_r / weights\n\t\t\t\t\tdata2[x2 + 1] = gx_g / weights\n\t\t\t\t\tdata2[x2 + 2] = gx_b / weights\n\t\t\t\t\tdata2[x2 + 3] = gx_a / weights_alpha\n\t\t\t\t}\n\t\t\t}\n\t\t\tcanvas.getContext('2d').clearRect(0, 0, Math.max(W, W2), Math.max(H, H2))\n\t\t\tcanvas.width = W2\n\t\t\tcanvas.height = H2\n\t\t\tcanvas.getContext('2d').putImageData(img2, 0, 0)\n\t\t}\n\n\t\tconst addConflict = function($conflicts, original, replacement) {\n\t\t\tconst $conflict = $conflicts.find('.template').clone().removeClass('template').addClass('conflict')\n\t\t\tconst $originalDiv = $conflict.find('.original')\n\t\t\tconst $replacementDiv = $conflict.find('.replacement')\n\n\t\t\t$conflict.data('data', data)\n\n\t\t\t$conflict.find('.filename').text(original.name)\n\t\t\t$originalDiv.find('.size').text(OC.Util.humanFileSize(original.size))\n\t\t\t$originalDiv.find('.mtime').text(OC.Util.formatDate(original.mtime))\n\t\t\t// ie sucks\n\t\t\tif (replacement.size && replacement.lastModified) {\n\t\t\t\t$replacementDiv.find('.size').text(OC.Util.humanFileSize(replacement.size))\n\t\t\t\t$replacementDiv.find('.mtime').text(OC.Util.formatDate(replacement.lastModified))\n\t\t\t}\n\t\t\tlet path = original.directory + '/' + original.name\n\t\t\tconst urlSpec = {\n\t\t\t\tfile: path,\n\t\t\t\tx: 96,\n\t\t\t\ty: 96,\n\t\t\t\tc: original.etag,\n\t\t\t\tforceIcon: 0,\n\t\t\t}\n\t\t\tlet previewpath = Files.generatePreviewUrl(urlSpec)\n\t\t\t// Escaping single quotes\n\t\t\tpreviewpath = previewpath.replace(/'/g, '%27')\n\t\t\t$originalDiv.find('.icon').css({ 'background-image': \"url('\" + previewpath + \"')\" })\n\t\t\tgetCroppedPreview(replacement).then(function(path) {\n\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t}, function() {\n\t\t\t\tpath = OC.MimeType.getIconUrl(replacement.type)\n\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t})\n\t\t\t// connect checkboxes with labels\n\t\t\tconst checkboxId = $conflicts.find('.conflict').length\n\t\t\t$originalDiv.find('input:checkbox').attr('id', 'checkbox_original_' + checkboxId)\n\t\t\t$replacementDiv.find('input:checkbox').attr('id', 'checkbox_replacement_' + checkboxId)\n\n\t\t\t$conflicts.append($conflict)\n\n\t\t\t// set more recent mtime bold\n\t\t\t// ie sucks\n\t\t\tif (replacement.lastModified > original.mtime) {\n\t\t\t\t$replacementDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else if (replacement.lastModified < original.mtime) {\n\t\t\t\t$originalDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same mtime collection?\n\t\t\t}\n\n\t\t\t// set bigger size bold\n\t\t\tif (replacement.size && replacement.size > original.size) {\n\t\t\t\t$replacementDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else if (replacement.size && replacement.size < original.size) {\n\t\t\t\t$originalDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same size collection?\n\t\t\t}\n\n\t\t\t// TODO show skip action for files with same size and mtime in bottom row\n\n\t\t\t// always keep readonly files\n\n\t\t\tif (original.status === 'readonly') {\n\t\t\t\t$originalDiv\n\t\t\t\t\t.addClass('readonly')\n\t\t\t\t\t.find('input[type=\"checkbox\"]')\n\t\t\t\t\t.prop('checked', true)\n\t\t\t\t\t.prop('disabled', true)\n\t\t\t\t$originalDiv.find('.message')\n\t\t\t\t\t.text(t('core', 'read-only'))\n\t\t\t}\n\t\t}\n\n\t\tconst dialogName = 'oc-dialog-fileexists-content'\n\t\tconst dialogId = '#' + dialogName\n\t\tif (this._fileexistsshown) {\n\t\t\t// add conflict\n\n\t\t\tconst $conflicts = $(dialogId + ' .conflicts')\n\t\t\taddConflict($conflicts, original, replacement)\n\n\t\t\tconst count = $(dialogId + ' .conflict').length\n\t\t\tconst title = n(\n\t\t\t\t'core',\n\t\t\t\t'{count} file conflict',\n\t\t\t\t'{count} file conflicts',\n\t\t\t\tcount,\n\t\t\t\t{ count },\n\t\t\t)\n\t\t\t$(dialogId).parent().children('.oc-dialog-title').text(title)\n\n\t\t\t// recalculate dimensions\n\t\t\t$(window).trigger('resize')\n\t\t\tdialogDeferred.resolve()\n\t\t} else {\n\t\t\t// create dialog\n\t\t\tthis._fileexistsshown = true\n\t\t\t$.when(this._getFileExistsTemplate()).then(function($tmpl) {\n\t\t\t\tconst title = t('core', 'One file conflict')\n\t\t\t\tconst $dlg = $tmpl.octemplate({\n\t\t\t\t\tdialog_name: dialogName,\n\t\t\t\t\ttitle,\n\t\t\t\t\ttype: 'fileexists',\n\n\t\t\t\t\tallnewfiles: t('core', 'New Files'),\n\t\t\t\t\tallexistingfiles: t('core', 'Already existing files'),\n\n\t\t\t\t\twhy: t('core', 'Which files do you want to keep?'),\n\t\t\t\t\twhat: t('core', 'If you select both versions, the copied file will have a number added to its name.'),\n\t\t\t\t})\n\t\t\t\t$('body').append($dlg)\n\n\t\t\t\tif (original && replacement) {\n\t\t\t\t\tconst $conflicts = $dlg.find('.conflicts')\n\t\t\t\t\taddConflict($conflicts, original, replacement)\n\t\t\t\t}\n\n\t\t\t\tconst buttonlist = [{\n\t\t\t\t\ttext: t('core', 'Cancel'),\n\t\t\t\t\tclasses: 'cancel',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onCancel !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onCancel(data)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: t('core', 'Continue'),\n\t\t\t\t\tclasses: 'continue',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onContinue !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onContinue($(dialogId + ' .conflict'))\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t},\n\t\t\t\t}]\n\n\t\t\t\t$(dialogId).ocdialog({\n\t\t\t\t\twidth: 500,\n\t\t\t\t\tcloseOnEscape: true,\n\t\t\t\t\tmodal: true,\n\t\t\t\t\tbuttons: buttonlist,\n\t\t\t\t\tcloseButton: null,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\tself._fileexistsshown = false\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$(this).ocdialog('destroy').remove()\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// ignore\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t$(dialogId).css('height', 'auto')\n\n\t\t\t\tconst $primaryButton = $dlg.closest('.oc-dialog').find('button.continue')\n\t\t\t\t$primaryButton.prop('disabled', true)\n\n\t\t\t\t/**\n\t\t\t\t *\n\t\t\t\t */\n\t\t\t\tfunction updatePrimaryButton() {\n\t\t\t\t\tconst checkedCount = $dlg.find('.conflicts .checkbox:checked').length\n\t\t\t\t\t$primaryButton.prop('disabled', checkedCount === 0)\n\t\t\t\t}\n\n\t\t\t\t// add checkbox toggling actions\n\t\t\t\t$(dialogId).find('.allnewfiles').on('click', function() {\n\t\t\t\t\tconst $checkboxes = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.allexistingfiles').on('click', function() {\n\t\t\t\t\tconst $checkboxes = $(dialogId).find('.conflict .original:not(.readonly) input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement,.original:not(.readonly)', function() {\n\t\t\t\t\tconst $checkbox = $(this).find('input[type=\"checkbox\"]')\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement input[type=\"checkbox\"],.original:not(.readonly) input[type=\"checkbox\"]', function() {\n\t\t\t\t\tconst $checkbox = $(this)\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\n\t\t\t\t// update counters\n\t\t\t\t$(dialogId).on('click', '.replacement,.allnewfiles', function() {\n\t\t\t\t\tconst count = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '({count} selected)', { count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\t\t\t\t$(dialogId).on('click', '.original,.allexistingfiles', function() {\n\t\t\t\t\tconst count = $(dialogId).find('.conflict .original input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count')\n\t\t\t\t\t\t\t.text(t('core', '({count} selected)', { count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\n\t\t\t\tdialogDeferred.resolve()\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdialogDeferred.reject()\n\t\t\t\t\talert(t('core', 'Error loading file exists template'))\n\t\t\t\t})\n\t\t}\n\t\t// }\n\t\treturn dialogDeferred.promise()\n\t},\n\n\t_getFileExistsTemplate: function() {\n\t\tconst defer = $.Deferred()\n\t\tif (!this.$fileexistsTemplate) {\n\t\t\tconst self = this\n\t\t\t$.get(OC.filePath('core', 'templates/legacy', 'fileexists.html'), function(tmpl) {\n\t\t\t\tself.$fileexistsTemplate = $(tmpl)\n\t\t\t\tdefer.resolve(self.$fileexistsTemplate)\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdefer.reject()\n\t\t\t\t})\n\t\t} else {\n\t\t\tdefer.resolve(this.$fileexistsTemplate)\n\t\t}\n\t\treturn defer.promise()\n\t},\n}\n\nexport default Dialogs\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\n/**\n * Get the current CSRF token.\n */\nexport function getRequestToken() {\n return document.head.dataset.requesttoken;\n}\n/**\n * Set a new CSRF token (e.g. because of session refresh).\n * This also emits an event bus event for the updated token.\n *\n * @param token - The new token\n * @fires Error - If the passed token is not a potential valid token\n */\nexport function setRequestToken(token) {\n if (!token || typeof token !== 'string') {\n throw new Error('Invalid CSRF token given', { cause: { token } });\n }\n document.head.dataset.requesttoken = token;\n emit('csrf-token-update', { token });\n}\n/**\n * Fetch the request token from the API.\n * This does also set it on the current context, see `setRequestToken`.\n *\n * @fires Error - If the request failed\n */\nexport async function fetchRequestToken() {\n const url = generateUrl('/csrftoken');\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error('Could not fetch CSRF token from API', { cause: response });\n }\n const { token } = await response.json();\n setRequestToken(token);\n return token;\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken } from './requesttoken.ts'\n\n/**\n * Create a new event source\n *\n * @param {string} src\n * @param {object} [data] to be send as GET\n *\n * @constructs OCEventSource\n */\nfunction OCEventSource(src, data) {\n\tlet dataStr = ''\n\tlet name\n\tlet joinChar\n\tthis.typelessListeners = []\n\tthis.closed = false\n\tthis.listeners = {}\n\tif (data) {\n\t\tfor (name in data) {\n\t\t\tdataStr += name + '=' + encodeURIComponent(data[name]) + '&'\n\t\t}\n\t}\n\tdataStr += 'requesttoken=' + encodeURIComponent(getRequestToken())\n\tif (!this.useFallBack && typeof EventSource !== 'undefined') {\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tthis.source = new EventSource(src + joinChar + dataStr)\n\t\tthis.source.onmessage = function(e) {\n\t\t\tfor (let i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](JSON.parse(e.data))\n\t\t\t}\n\t\t}.bind(this)\n\t} else {\n\t\tconst iframeId = 'oc_eventsource_iframe_' + OCEventSource.iframeCount\n\t\tOCEventSource.fallBackSources[OCEventSource.iframeCount] = this\n\t\tconst iframe = document.createElement('iframe')\n\t\tiframe.id = iframeId\n\t\tiframe.style.display = 'none'\n\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tiframe.src = src + joinChar + 'fallback=true&fallback_id=' + OCEventSource.iframeCount + '&' + dataStr\n\n\t\tthis.iframe = iframe\n\t\tdocument.body.appendChild(this.iframe)\n\t\tthis.useFallBack = true\n\t\tOCEventSource.iframeCount++\n\t}\n\t// add close listener\n\tthis.listen('__internal__', function(data) {\n\t\tif (data === 'close') {\n\t\t\tthis.close()\n\t\t}\n\t}.bind(this))\n}\nOCEventSource.fallBackSources = []\nOCEventSource.iframeCount = 0// number of fallback iframes\nOCEventSource.fallBackCallBack = function(id, type, data) {\n\tOCEventSource.fallBackSources[id].fallBackCallBack(type, data)\n}\nOCEventSource.prototype = {\n\ttypelessListeners: [],\n\tiframe: null,\n\tlisteners: {}, // only for fallback\n\tuseFallBack: false,\n\t/**\n\t * Fallback callback for browsers that don't have the\n\t * native EventSource object.\n\t *\n\t * Calls the registered listeners.\n\t *\n\t * @private\n\t * @param {string} type event type\n\t * @param {object} data received data\n\t */\n\tfallBackCallBack: function(type, data) {\n\t\tlet i\n\t\t// ignore messages that might appear after closing\n\t\tif (this.closed) {\n\t\t\treturn\n\t\t}\n\t\tif (type) {\n\t\t\tif (typeof this.listeners.done !== 'undefined') {\n\t\t\t\tfor (i = 0; i < this.listeners[type].length; i++) {\n\t\t\t\t\tthis.listeners[type][i](data)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](data)\n\t\t\t}\n\t\t}\n\t},\n\tlastLength: 0, // for fallback\n\t/**\n\t * Listen to a given type of events.\n\t *\n\t * @param {string} type event type\n\t * @param {Function} callback event callback\n\t */\n\tlisten: function(type, callback) {\n\t\tif (callback && callback.call) {\n\t\t\tif (type) {\n\t\t\t\tif (this.useFallBack) {\n\t\t\t\t\tif (!this.listeners[type]) {\n\t\t\t\t\t\tthis.listeners[type] = []\n\t\t\t\t\t}\n\t\t\t\t\tthis.listeners[type].push(callback)\n\t\t\t\t} else {\n\t\t\t\t\tthis.source.addEventListener(type, function(e) {\n\t\t\t\t\t\tif (typeof e.data !== 'undefined') {\n\t\t\t\t\t\t\tcallback(JSON.parse(e.data))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback('')\n\t\t\t\t\t\t}\n\t\t\t\t\t}, false)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.typelessListeners.push(callback)\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * Closes this event source.\n\t */\n\tclose: function() {\n\t\tthis.closed = true\n\t\tif (typeof this.source !== 'undefined') {\n\t\t\tthis.source.close()\n\t\t}\n\t},\n}\n\nexport default OCEventSource\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-FileCopyrightText: 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tloadTranslations,\n\tregister,\n\ttranslate,\n\ttranslatePlural,\n\tunregister,\n} from '@nextcloud/l10n'\nimport Handlebars from 'handlebars'\n\n/**\n * L10N namespace with localization functions.\n *\n * @namespace OC.L10n\n * @deprecated 26.0.0 use https://www.npmjs.com/package/@nextcloud/l10n\n */\nconst L10n = {\n\n\t/**\n\t * Load an app's translation bundle if not loaded already.\n\t *\n\t * @deprecated 26.0.0 use `loadTranslations` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Function} callback callback to be called when\n\t * the translations are loaded\n\t * @return {Promise} promise\n\t */\n\tload: loadTranslations,\n\n\t/**\n\t * Register an app's translation bundle.\n\t *\n\t * @deprecated 26.0.0 use `register` from https://www.npmjs.com/package/@nextcloud/l10\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Record} bundle bundle\n\t */\n\tregister,\n\n\t/**\n\t * @private\n\t * @deprecated 26.0.0 use `unregister` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\t_unregister: unregister,\n\n\t/**\n\t * Translate a string\n\t *\n\t * @deprecated 26.0.0 use `translate` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {number} [count] number to replace %n with\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @param {boolean} [options.sanitize=true] enable/disable sanitization (by default enabled)\n\t * @return {string}\n\t */\n\ttranslate,\n\n\t/**\n\t * Translate a plural string\n\t *\n\t * @deprecated 26.0.0 use `translatePlural` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @return {string} Translated string\n\t */\n\ttranslatePlural,\n}\n\nexport default L10n\n\nHandlebars.registerHelper('t', function(app, text) {\n\treturn translate(app, text)\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/** @typedef {import('jquery')} jQuery */\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport { menuSpeed } from './constants.js'\n\nexport let currentMenu = null\nexport let currentMenuToggle = null\n\n/**\n * For menu toggling\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n * @param {Function | undefined} toggle callback invoked everytime the menu is opened\n * @param {boolean} headerMenu is this a top right header menu?\n * @return {void}\n */\nexport function registerMenu($toggle, $menuEl, toggle, headerMenu) {\n\t$menuEl.addClass('menu')\n\tconst isClickableElement = $toggle.prop('tagName') === 'A' || $toggle.prop('tagName') === 'BUTTON'\n\n\t// On link and button, the enter key trigger a click event\n\t// Only use the click to avoid two fired events\n\t$toggle.on(isClickableElement ? 'click.menu' : 'click.menu keyup.menu', function(event) {\n\t\t// prevent the link event (append anchor to URL)\n\t\tevent.preventDefault()\n\n\t\t// allow enter key as a trigger\n\t\tif (event.key && event.key !== 'Enter') {\n\t\t\treturn\n\t\t}\n\n\t\tif ($menuEl.is(currentMenu)) {\n\t\t\thideMenus()\n\t\t\treturn\n\t\t} else if (currentMenu) {\n\t\t\t// another menu was open?\n\t\t\t// close it\n\t\t\thideMenus()\n\t\t}\n\n\t\tif (headerMenu === true) {\n\t\t\t$menuEl.parent().addClass('openedMenu')\n\t\t}\n\n\t\t// Set menu to expanded\n\t\t$toggle.attr('aria-expanded', true)\n\n\t\t$menuEl.slideToggle(menuSpeed, toggle)\n\t\tcurrentMenu = $menuEl\n\t\tcurrentMenuToggle = $toggle\n\t})\n}\n\n/**\n * Unregister a previously registered menu\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n */\nexport function unregisterMenu($toggle, $menuEl) {\n\t// close menu if opened\n\tif ($menuEl.is(currentMenu)) {\n\t\thideMenus()\n\t}\n\t$toggle.off('click.menu').removeClass('menutoggle')\n\t$menuEl.removeClass('menu')\n}\n\n/**\n * Hides any open menus\n *\n * @param {Function} complete callback when the hiding animation is done\n */\nexport function hideMenus(complete) {\n\tif (currentMenu) {\n\t\tconst lastMenu = currentMenu\n\t\tcurrentMenu.trigger(new $.Event('beforeHide'))\n\t\tcurrentMenu.slideUp(menuSpeed, function() {\n\t\t\tlastMenu.trigger(new $.Event('afterHide'))\n\t\t\tif (complete) {\n\t\t\t\tcomplete.apply(this, arguments)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Set menu to closed\n\t$('.menutoggle').attr('aria-expanded', false)\n\tif (currentMenuToggle) {\n\t\tcurrentMenuToggle.attr('aria-expanded', false)\n\t}\n\n\t$('.openedMenu').removeClass('openedMenu')\n\tcurrentMenu = null\n\tcurrentMenuToggle = null\n}\n\n/**\n * Shows a given element as menu\n *\n * @param {object} [$toggle] menu toggle\n * @param {object} $menuEl menu element\n * @param {Function} complete callback when the showing animation is done\n */\nexport function showMenu($toggle, $menuEl, complete) {\n\tif ($menuEl.is(currentMenu)) {\n\t\treturn\n\t}\n\thideMenus()\n\tcurrentMenu = $menuEl\n\tcurrentMenuToggle = $toggle\n\t$menuEl.trigger(new $.Event('beforeShow'))\n\t$menuEl.show()\n\t$menuEl.trigger(new $.Event('afterShow'))\n\t// no animation\n\tif (_.isFunction(complete)) {\n\t\tcomplete()\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const coreApps = ['', 'admin', 'log', 'core/search', 'core', '3rdparty']\nexport const menuSpeed = 50\nexport const PERMISSION_NONE = 0\nexport const PERMISSION_CREATE = 4\nexport const PERMISSION_READ = 1\nexport const PERMISSION_UPDATE = 2\nexport const PERMISSION_DELETE = 8\nexport const PERMISSION_SHARE = 16\nexport const PERMISSION_ALL = 31\nexport const TAG_FAVORITE = '_$!!$_'\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\n\nconst iconCache = new Map()\n\n/**\n * Return the url to icon of the given mimeType\n *\n * @param {string} mimeType The mimeType to get the icon for\n * @return {string} Url to the icon for mimeType\n */\nexport function getIconUrl(mimeType) {\n\tif (typeof mimeType === 'undefined') {\n\t\treturn undefined\n\t}\n\n\twhile (mimeType in window.OC.MimeTypeList.aliases) {\n\t\tmimeType = window.OC.MimeTypeList.aliases[mimeType]\n\t}\n\n\tif (!iconCache.has(mimeType)) {\n\t\tlet gotIcon = false\n\t\tlet path = ''\n\t\t// First try to get the correct icon from the current legacy-theme\n\t\tif (OC.theme.folder !== '' && Array.isArray(OC.MimeTypeList.themes[OC.theme.folder])) {\n\t\t\tpath = getRootUrl() + '/themes/' + window.OC.theme.folder + '/core/img/filetypes/'\n\t\t\tconst icon = getMimeTypeIcon(mimeType, window.OC.MimeTypeList.themes[OC.theme.folder])\n\t\t\tif (icon) {\n\t\t\t\tgotIcon = true\n\t\t\t\tpath += icon + '.svg'\n\t\t\t}\n\t\t}\n\n\t\t// theming is always enabled since Nextcloud 20 so we get it from that\n\t\tif (!gotIcon) {\n\t\t\tpath = generateUrl('/apps/theming/img/core/filetypes/' + getMimeTypeIcon(mimeType, window.OC.MimeTypeList.files) + '.svg')\n\t\t}\n\n\t\tpath += '?v=' + window.OCA.Theming.cacheBuster\n\t\t// Cache the result\n\t\ticonCache.set(mimeType, path)\n\t}\n\n\treturn iconCache.get(mimeType)\n}\n\n/**\n * Return the file icon we want to use for the given mimeType.\n * The file needs to be present in the supplied file list\n *\n * @param {string} mimeType The mimeType we want an icon for\n * @param {string[]} files The available icons in this theme\n * @return {string | null} The icon to use or null if there is no match\n */\nfunction getMimeTypeIcon(mimeType, files) {\n\tconst icon = mimeType.replace(new RegExp('/', 'g'), '-')\n\n\t// Generate path\n\tif (mimeType === 'dir' && files.includes('folder')) {\n\t\treturn 'folder'\n\t} else if (mimeType === 'dir-encrypted' && files.includes('folder-encrypted')) {\n\t\treturn 'folder-encrypted'\n\t} else if (mimeType === 'dir-shared' && files.includes('folder-shared')) {\n\t\treturn 'folder-shared'\n\t} else if (mimeType === 'dir-public' && files.includes('folder-public')) {\n\t\treturn 'folder-public'\n\t} else if ((mimeType === 'dir-external' || mimeType === 'dir-external-root') && files.includes('folder-external')) {\n\t\treturn 'folder-external'\n\t} else if (files.includes(icon)) {\n\t\treturn icon\n\t} else if (files.includes(icon.split('-')[0])) {\n\t\treturn icon.split('-')[0]\n\t} else if (files.includes('file')) {\n\t\treturn 'file'\n\t}\n\n\treturn null\n}\n\n/**\n * Clear the icon cache\n */\nexport function clearIconCache() {\n\ticonCache.clear()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * A little class to manage a status field for a \"saving\" process.\n * It can be used to display a starting message (e.g. \"Saving...\") and then\n * replace it with a green success message or a red error message.\n */\nexport default {\n /**\n * Displayes a \"Saving...\" message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n */\n startSaving(selector) {\n this.startAction(selector, t('core', 'Saving …'));\n },\n /**\n * Displayes a custom message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n * @param message - Plain text message to display (no HTML allowed)\n */\n startAction(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.remove('error');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n el.style.display = 'block';\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selectior for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status - is being used to decide whether the message is displayed as an error/success\n */\n finishedSaving(selector, response) {\n this.finishedAction(selector, response);\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status . Is being used to decide whether the message is displayed as an error/success\n */\n finishedAction(selector, response) {\n if (response.status === 'success') {\n this.finishedSuccess(selector, response.data.message);\n }\n else {\n this.finishedError(selector, response.data.message);\n }\n },\n /**\n * Displayes an success message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text success message to display (no HTML allowed)\n */\n finishedSuccess(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('error');\n el.classList.add('success');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n window.setTimeout(fadeOut, 3000);\n el.style.display = 'block';\n /**\n * Fades out the message element\n */\n function fadeOut() {\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n const animation = el.animate?.([\n { opacity: 1 },\n { opacity: 0 },\n ], {\n duration: 900,\n fill: 'forwards',\n });\n if (animation) {\n animation.addEventListener('finish', () => {\n el.style.display = 'none';\n });\n }\n else {\n window.setTimeout(() => {\n el.style.display = 'none';\n }, 900);\n }\n }\n },\n /**\n * Displayes an error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text error message to display (no HTML allowed)\n */\n finishedError(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.add('error');\n el.style.display = 'block';\n },\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showMessage, TOAST_DEFAULT_TIMEOUT, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs'\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\n/** @typedef {import('jquery')} jQuery */\n\n/**\n * @todo Write documentation\n * @deprecated 17.0.0 use the `@nextcloud/dialogs` package instead\n * @namespace OC.Notification\n */\nexport default {\n\n\tupdatableNotification: null,\n\n\tgetDefaultNotificationFunction: null,\n\n\t/**\n\t * @param {Function} callback callback function\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tsetDefault(callback) {\n\t\tthis.getDefaultNotificationFunction = callback\n\t},\n\n\t/**\n\t * Hides a notification.\n\t *\n\t * If a row is given, only hide that one.\n\t * If no row is given, hide all notifications.\n\t *\n\t * @param {jQuery} [$row] notification row\n\t * @param {Function} [callback] callback\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\thide($row, callback) {\n\t\tif (_.isFunction($row)) {\n\t\t\t// first arg is the callback\n\t\t\tcallback = $row\n\t\t\t$row = undefined\n\t\t}\n\n\t\tif (!$row) {\n\t\t\tlogger.error('Missing argument $row in OC.Notification.hide() call, caller needs to be adjusted to only dismiss its own notification')\n\t\t\treturn\n\t\t}\n\n\t\t// remove the row directly\n\t\t$row.each(function() {\n\t\t\tif ($(this)[0].toastify) {\n\t\t\t\t$(this)[0].toastify.hideToast()\n\t\t\t} else {\n\t\t\t\tlogger.error('cannot hide toast because object is not set')\n\t\t\t}\n\t\t\tif (this === this.updatableNotification) {\n\t\t\t\tthis.updatableNotification = null\n\t\t\t}\n\t\t})\n\t\tif (callback) {\n\t\t\tcallback.call()\n\t\t}\n\t\tif (this.getDefaultNotificationFunction) {\n\t\t\tthis.getDefaultNotificationFunction()\n\t\t}\n\t},\n\n\t/**\n\t * Shows a notification as HTML without being sanitized before.\n\t * If you pass unsanitized user input this may lead to a XSS vulnerability.\n\t * Consider using show() instead of showHTML()\n\t *\n\t * @param {string} html Message to display\n\t * @param {object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {number} [options.timeout] timeout value, defaults to 0 (permanent)\n\t * @return {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowHtml(html, options) {\n\t\toptions = options || {}\n\t\toptions.isHTML = true\n\t\toptions.timeout = (!options.timeout) ? TOAST_PERMANENT_TIMEOUT : options.timeout\n\t\tconst toast = showMessage(html, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Shows a sanitized notification\n\t *\n\t * @param {string} text Message to display\n\t * @param {object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {number} [options.timeout] timeout value, defaults to 0 (permanent)\n\t * @return {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshow(text, options) {\n\t\tconst escapeHTML = function(text) {\n\t\t\treturn text.toString()\n\t\t\t\t.split('&').join('&')\n\t\t\t\t.split('<').join('<')\n\t\t\t\t.split('>').join('>')\n\t\t\t\t.split('\"').join('"')\n\t\t\t\t.split('\\'').join(''')\n\t\t}\n\n\t\toptions = options || {}\n\t\toptions.timeout = (!options.timeout) ? TOAST_PERMANENT_TIMEOUT : options.timeout\n\t\tconst toast = showMessage(escapeHTML(text), options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Updates (replaces) a sanitized notification.\n\t *\n\t * @param {string} text Message to display\n\t * @return {jQuery} JQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowUpdate(text) {\n\t\tif (this.updatableNotification) {\n\t\t\tthis.updatableNotification.hideToast()\n\t\t}\n\t\tthis.updatableNotification = showMessage(text, { timeout: TOAST_PERMANENT_TIMEOUT })\n\t\tthis.updatableNotification.toastElement.toastify = this.updatableNotification\n\t\treturn $(this.updatableNotification.toastElement)\n\t},\n\n\t/**\n\t * Shows a notification that disappears after x seconds, default is\n\t * 7 seconds\n\t *\n\t * @param {string} text Message to show\n\t * @param {Array} [options] options array\n\t * @param {number} [options.timeout] timeout in seconds, if this is 0 it will show the message permanently\n\t * @param {boolean} [options.isHTML] an indicator for HTML notifications (true) or text (false)\n\t * @param {string} [options.type] notification type\n\t * @return {jQuery} the toast element\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowTemporary(text, options) {\n\t\toptions = options || {}\n\t\toptions.timeout = options.timeout || TOAST_DEFAULT_TIMEOUT\n\t\tconst toast = showMessage(text, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Returns whether a notification is hidden.\n\t *\n\t * @return {boolean}\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tisHidden() {\n\t\treturn !$('#content').find('.toastify').length\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { confirmPassword, isPasswordConfirmationRequired } from '@nextcloud/password-confirmation'\n\n/**\n * @namespace OC.PasswordConfirmation\n */\nexport default {\n\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequiresPasswordConfirmation() {\n\t\treturn isPasswordConfirmationRequired()\n\t},\n\n\t/**\n\t * @param {Function} callback success callback function\n\t * @param {object} options options currently not used by confirmPassword\n\t * @param {Function} rejectCallback error callback function\n\t *\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequirePasswordConfirmation(callback, options, rejectCallback) {\n\t\tconfirmPassword().then(callback, rejectCallback)\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\t/**\n\t * @type {Array.}\n\t */\n\t_plugins: {},\n\n\t/**\n\t * Register plugin\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @param {OC.Plugin} plugin plugin\n\t */\n\tregister(targetName, plugin) {\n\t\tlet plugins = this._plugins[targetName]\n\t\tif (!plugins) {\n\t\t\tplugins = this._plugins[targetName] = []\n\t\t}\n\t\tplugins.push(plugin)\n\t},\n\n\t/**\n\t * Returns all plugin registered to the given target\n\t * name / app name / class name.\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @return {Array.} array of plugins\n\t */\n\tgetPlugins(targetName) {\n\t\treturn this._plugins[targetName] || []\n\t},\n\n\t/**\n\t * Call attach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tattach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].attach) {\n\t\t\t\tplugins[i].attach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Call detach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tdetach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].detach) {\n\t\t\t\tplugins[i].detach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\n/**\n * @deprecated 25.0.0 Use Vue based (`@nextcloud/vue`) settings components instead\n */\nexport default {\n\t_cachedGroups: null,\n\n\tescapeHTML: function(text) {\n\t\treturn text.toString()\n\t\t\t.split('&').join('&')\n\t\t\t.split('<').join('<')\n\t\t\t.split('>').join('>')\n\t\t\t.split('\"').join('"')\n\t\t\t.split('\\'').join(''')\n\t},\n\n\tasync rebuildNavigation() {\n\t\tconst { data } = await axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\treturn\n\t\t}\n\n\t\temit('nextcloud:app-menu.refresh', { apps: data.ocs.data })\n\t\twindow.dispatchEvent(new Event('resize'))\n\t},\n\n\t/**\n\t * Setup selection box for group selection.\n\t *\n\t * Values need to be separated by a pipe \"|\" character.\n\t * (mostly because a comma is more likely to be used\n\t * for groups)\n\t *\n\t * @param $elements jQuery element (hidden input) to setup select2 on\n\t * @param {Array} [extraOptions] extra options hash to pass to select2\n\t * @param {Array} [options] extra options\n\t * @param {Array} [options.excludeAdmins] flag whether to exclude admin groups\n\t */\n\tsetupGroupsSelect: function($elements, extraOptions, options) {\n\t\tconst self = this\n\t\toptions = options || {}\n\t\tif ($elements.length > 0) {\n\t\t\t// Let's load the data and THEN init our select\n\t\t\t$.ajax({\n\t\t\t\turl: generateOcsUrl('cloud/groups/details'),\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tconst results = []\n\n\t\t\t\t\tif (data.ocs.data.groups && data.ocs.data.groups.length > 0) {\n\t\t\t\t\t\tdata.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\t\tif (!options.excludeAdmins || group.id !== 'admin') {\n\t\t\t\t\t\t\t\tresults.push({ id: group.id, displayname: group.displayname })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\t// note: settings are saved through a \"change\" event registered\n\t\t\t\t\t\t// on all input fields\n\t\t\t\t\t\t$elements.select2(_.extend({\n\t\t\t\t\t\t\tplaceholder: t('core', 'Groups'),\n\t\t\t\t\t\t\tallowClear: true,\n\t\t\t\t\t\t\tmultiple: true,\n\t\t\t\t\t\t\ttoggleSelect: true,\n\t\t\t\t\t\t\tseparator: '|',\n\t\t\t\t\t\t\tdata: { results, text: 'displayname' },\n\t\t\t\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\t\t\t\tconst groups = $(element).val()\n\t\t\t\t\t\t\t\tlet selection\n\t\t\t\t\t\t\t\tif (groups && results.length > 0) {\n\t\t\t\t\t\t\t\t\tselection = _.map(_.filter((groups || []).split('|').sort(), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn results.find(function(group) {\n\t\t\t\t\t\t\t\t\t\t\treturn group.id === groupId\n\t\t\t\t\t\t\t\t\t\t}) !== undefined\n\t\t\t\t\t\t\t\t\t}), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\t\t\t\t\tdisplayname: results.find(function(group) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn group.id === groupId\n\t\t\t\t\t\t\t\t\t\t\t}).displayname,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t} else if (groups) {\n\t\t\t\t\t\t\t\t\tselection = _.map((groups || []).split('|').sort(), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\t\t\t\t\tdisplayname: groupId,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcallback(selection)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tformatResult: function(element) {\n\t\t\t\t\t\t\t\treturn self.escapeHTML(element.displayname)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tformatSelection: function(element) {\n\t\t\t\t\t\t\t\treturn self.escapeHTML(element.displayname)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\t\t\t// prevent double markup escape\n\t\t\t\t\t\t\t\treturn m\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}, extraOptions || {}))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.show(t('core', 'Group list is empty'), { type: 'error' })\n\t\t\t\t\t\tlogger.debug(data)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function(data) {\n\t\t\t\t\tOC.Notification.show(t('core', 'Unable to retrieve the group list'), { type: 'error' })\n\t\t\t\t\tlogger.debug(data)\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const theme = window._theme || {}\n","import { l as logger, F as FileType } from \"./chunks/folder-CeyZUHai.mjs\";\nimport { a, b, N, c, P } from \"./chunks/folder-CeyZUHai.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport isSvg from \"is-svg\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"@nextcloud/paths\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nconst DefaultType = Object.freeze({\n DEFAULT: \"default\",\n HIDDEN: \"hidden\"\n});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get hotkey() {\n return this._action.hotkey;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\n }\n }\n}\nfunction registerFileAction(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n}\nfunction getFileActions() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n}\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nfunction registerFileListAction(action) {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n}\nfunction getFileListActions() {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n}\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const safeSrc = exports.safeSrc = [];\n const t = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t[name] = index;\n src[index] = value;\n safeSrc[index] = safe;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\n createToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n if (typeof a2 === \"number\" && typeof b2 === \"number\") {\n return a2 === b2 ? 0 : a2 < b2 ? -1 : 1;\n }\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? re2[t.LOOSE] : re2[t.FULL]);\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.major < other.major) {\n return -1;\n }\n if (this.major > other.major) {\n return 1;\n }\n if (this.minor < other.minor) {\n return -1;\n }\n if (this.minor > other.minor) {\n return 1;\n }\n if (this.patch < other.patch) {\n return -1;\n }\n if (this.patch > other.patch) {\n return 1;\n }\n return 0;\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i = 0;\n do {\n const a2 = this.prerelease[i];\n const b2 = other.prerelease[i];\n debug(\"prerelease compare\", i, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i = 0;\n do {\n const a2 = this.build[i];\n const b2 = other.build[i];\n debug(\"build compare\", i, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n if (release.startsWith(\"pre\")) {\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re2[t.PRERELEASELOOSE] : re2[t.PRERELEASE]);\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`);\n }\n }\n }\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"release\":\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`);\n }\n this.prerelease.length = 0;\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nfunction registerFileListHeaders(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n}\nfunction getFileListHeaders() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n}\nfunction checkOptionalProperty(obj, property, type) {\n if (typeof obj[property] !== \"undefined\") {\n if (type === \"array\") {\n if (!Array.isArray(obj[property])) {\n throw new Error(`View ${property} must be an array`);\n }\n } else if (typeof obj[property] !== type) {\n throw new Error(`View ${property} must be a ${type}`);\n } else if (type === \"object\" && (obj[property] === null || Array.isArray(obj[property]))) {\n throw new Error(`View ${property} must be an object`);\n }\n }\n}\nclass Column {\n _column;\n constructor(column) {\n validateColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nfunction validateColumn(column) {\n if (typeof column !== \"object\" || column === null) {\n throw new Error(\"View column must be an object\");\n }\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n checkOptionalProperty(column, \"sort\", \"function\");\n checkOptionalProperty(column, \"summary\", \"function\");\n}\nclass View {\n _view;\n constructor(view) {\n validateView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get hidden() {\n return this._view.hidden;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nfunction validateView(view) {\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n checkOptionalProperty(view, \"caption\", \"string\");\n checkOptionalProperty(view, \"columns\", \"array\");\n checkOptionalProperty(view, \"defaultSortKey\", \"string\");\n checkOptionalProperty(view, \"emptyCaption\", \"string\");\n checkOptionalProperty(view, \"emptyTitle\", \"string\");\n checkOptionalProperty(view, \"emptyView\", \"function\");\n checkOptionalProperty(view, \"expanded\", \"boolean\");\n checkOptionalProperty(view, \"hidden\", \"boolean\");\n checkOptionalProperty(view, \"loadChildViews\", \"function\");\n checkOptionalProperty(view, \"order\", \"number\");\n checkOptionalProperty(view, \"params\", \"object\");\n checkOptionalProperty(view, \"parent\", \"string\");\n checkOptionalProperty(view, \"sticky\", \"boolean\");\n if (view.columns) {\n view.columns.forEach(validateColumn);\n const columnIds = view.columns.reduce((set, column) => set.add(column.id), /* @__PURE__ */ new Set());\n if (columnIds.size !== view.columns.length) {\n throw new Error(\"View columns must have unique ids\");\n }\n }\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n *\n * @param view The view to register\n * @throws {Error} if a view with the same id is already registered\n * @throws {Error} if the registered view is invalid\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`IView id ${view.id} is already registered`);\n }\n validateView(view);\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n *\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n *\n * @param id - The id of the view to set as active\n * @throws {Error} If no view with the given id was registered\n * @fires UpdateActiveViewEvent\n */\n setActive(id) {\n if (id === null) {\n this._currentView = null;\n } else {\n const view = this._views.find(({ id: viewId }) => viewId === id);\n if (!view) {\n throw new Error(`No view with ${id} registered`);\n }\n this._currentView = view;\n }\n const event = new CustomEvent(\"updateActive\", { detail: this._currentView });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nfunction getNavigation() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n}\nconst NewMenuEntryCategory = Object.freeze({\n /**\n * For actions where the user is intended to upload from their device\n */\n UploadFromDevice: 0,\n /**\n * For actions that create new nodes on the server without uploading\n */\n CreateNew: 1,\n /**\n * For everything not matching the other categories\n */\n Other: 2\n});\nclass NewMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? NewMenuEntryCategory.CreateNew;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param context - The creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !entry.iconSvgInline || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nfunction getNewFileMenu() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n}\nfunction addNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n}\nfunction removeNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n}\nfunction getNewFileMenuEntries(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n}\nfunction registerSidebarAction(action) {\n validateSidebarAction(action);\n window._nc_files_sidebar_actions ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sidebar_actions.has(action.id)) {\n logger.warn(`Sidebar action with id \"${action.id}\" already registered. Skipping.`);\n return;\n }\n window._nc_files_sidebar_actions.set(action.id, action);\n logger.debug(`New sidebar action with id \"${action.id}\" registered.`);\n}\nfunction getSidebarActions() {\n if (window._nc_files_sidebar_actions) {\n return [...window._nc_files_sidebar_actions.values()];\n }\n return [];\n}\nfunction validateSidebarAction(action) {\n if (typeof action !== \"object\") {\n throw new Error(\"Sidebar action is not an object\");\n }\n if (!action.id || typeof action.id !== \"string\" || action.id !== CSS.escape(action.id)) {\n throw new Error(\"Sidebar actions need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Sidebar actions need to have a displayName function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Sidebar actions need to have a iconSvgInline function\");\n }\n if (!action.enabled || typeof action.enabled !== \"function\") {\n throw new Error(\"Sidebar actions need to have an enabled function\");\n }\n if (!action.onClick || typeof action.onClick !== \"function\") {\n throw new Error(\"Sidebar actions need to have an onClick function\");\n }\n}\nfunction registerSidebarTab(tab) {\n validateSidebarTab(tab);\n window._nc_files_sidebar_tabs ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sidebar_tabs.has(tab.id)) {\n logger.warn(`Sidebar tab with id \"${tab.id}\" already registered. Skipping.`);\n return;\n }\n window._nc_files_sidebar_tabs.set(tab.id, tab);\n logger.debug(`New sidebar tab with id \"${tab.id}\" registered.`);\n}\nfunction getSidebarTabs() {\n if (window._nc_files_sidebar_tabs) {\n return [...window._nc_files_sidebar_tabs.values()];\n }\n return [];\n}\nfunction validateSidebarTab(tab) {\n if (typeof tab !== \"object\") {\n throw new Error(\"Sidebar tab is not an object\");\n }\n if (!tab.id || typeof tab.id !== \"string\" || tab.id !== CSS.escape(tab.id)) {\n throw new Error(\"Sidebar tabs need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!tab.tagName || typeof tab.tagName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have the tagName name set\");\n }\n if (!tab.tagName.match(/^[a-z][a-z0-9-_]+$/)) {\n throw new Error('Sidebar tab \"tagName\" is invalid');\n }\n if (!tab.displayName || typeof tab.displayName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have a name set\");\n }\n if (typeof tab.iconSvgInline !== \"string\" || !isSvg(tab.iconSvgInline)) {\n throw new Error(\"Sidebar tabs need to have an valid SVG icon\");\n }\n if (typeof tab.order !== \"number\") {\n throw new Error(\"Sidebar tabs need to have a numeric order set\");\n }\n if (tab.enabled && typeof tab.enabled !== \"function\") {\n throw new Error('Sidebar tab \"enabled\" is not a function');\n }\n if (tab.onInit && typeof tab.onInit !== \"function\") {\n throw new Error('Sidebar tab \"onInit\" is not a function');\n }\n}\nclass SidebarProxy {\n get #impl() {\n return window.OCA?.Files?._sidebar?.();\n }\n get available() {\n return !!this.#impl;\n }\n get isOpen() {\n return this.#impl?.isOpen ?? false;\n }\n get activeTab() {\n return this.#impl?.activeTab;\n }\n get node() {\n return this.#impl?.node;\n }\n open(node, tab) {\n this.#impl?.open(node, tab);\n }\n close() {\n this.#impl?.close();\n }\n setActiveTab(tabId) {\n this.#impl?.setActiveTab(tabId);\n }\n registerTab(tab) {\n registerSidebarTab(tab);\n }\n getTabs(context) {\n return this.#impl?.getTabs(context) ?? [];\n }\n getActions(context) {\n return this.#impl?.getActions(context) ?? [];\n }\n registerAction(action) {\n registerSidebarAction(action);\n }\n}\nfunction getSidebar() {\n return new SidebarProxy();\n}\nconst InvalidFilenameErrorReason = Object.freeze({\n ReservedName: \"reserved name\",\n Character: \"character\",\n Extension: \"extension\"\n});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: InvalidFilenameErrorReason.Character, filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({ filename, segment: filename, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({ filename, segment: basename2, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: InvalidFilenameErrorReason.Extension, filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n) => `(${n})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nconst FilesSortingMode = Object.freeze({\n Name: \"basename\",\n Modified: \"mtime\",\n Size: \"size\"\n});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: FilesSortingMode.Name,\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n function basename2(node) {\n const name = node.displayname || node.attributes?.displayname || node.basename || \"\";\n if (node.type === FileType.Folder) {\n return name;\n }\n return name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n }\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== FilesSortingMode.Name ? [(v) => v[sortingOptions.sortingMode] ?? v.attributes[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === FilesSortingMode.Modified ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== FilesSortingMode.Modified && sortingOptions.sortingMode !== FilesSortingMode.Name ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nexport {\n Column,\n DefaultType,\n a as File,\n FileAction,\n FileListAction,\n FileListFilter,\n FileType,\n FilesSortingMode,\n b as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n c as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n formatFileSize,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenu,\n getNewFileMenuEntries,\n getSidebar,\n getSidebarActions,\n getSidebarTabs,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n registerSidebarAction,\n registerSidebarTab,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateColumn,\n validateFilename,\n validateView\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport _ from 'underscore'\nimport OC from './index.js'\n\n/**\n * Utility class for the history API,\n * includes fallback to using the URL hash when\n * the browser doesn't support the history API.\n *\n * @namespace OC.Util.History\n */\nexport default {\n\n\t_handlers: [],\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t * @param {boolean} [replace] whether to replace instead of pushing\n\t */\n\t_pushState(params, url, replace) {\n\t\tlet strParams\n\t\tif (typeof (params) === 'string') {\n\t\t\tstrParams = params\n\t\t} else {\n\t\t\tstrParams = OC.buildQueryString(params)\n\t\t}\n\n\t\tif (window.history.pushState) {\n\t\t\turl = url || location.pathname + '?' + strParams\n\t\t\t// Workaround for bug with SVG and window.history.pushState on Firefox < 51\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=652991\n\t\t\tconst isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n\t\t\tif (isFirefox && parseInt(navigator.userAgent.split('/').pop()) < 51) {\n\t\t\t\tconst patterns = document.querySelectorAll('[fill^=\"url(#\"], [stroke^=\"url(#\"], [filter^=\"url(#invert\"]')\n\t\t\t\tfor (let i = 0, ii = patterns.length, pattern; i < ii; i++) {\n\t\t\t\t\tpattern = patterns[i]\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.fill = pattern.style.fill\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.stroke = pattern.style.stroke\n\t\t\t\t\tpattern.removeAttribute('filter')\n\t\t\t\t\tpattern.setAttribute('filter', 'url(#invert)')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (replace) {\n\t\t\t\twindow.history.replaceState(params, '', url)\n\t\t\t} else {\n\t\t\t\twindow.history.pushState(params, '', url)\n\t\t\t}\n\t\t} else {\n\t\t\t// use URL hash for IE8\n\t\t\twindow.location.hash = '?' + strParams\n\t\t\t// inhibit next onhashchange that just added itself\n\t\t\t// to the event queue\n\t\t\tthis._cancelPop = true\n\t\t}\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used, using the params as query string\n\t */\n\tpushState(params, url) {\n\t\tthis._pushState(params, url, false)\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t */\n\treplaceState(params, url) {\n\t\tthis._pushState(params, url, true)\n\t},\n\n\t/**\n\t * Add a popstate handler\n\t *\n\t * @param {Function} handler handler\n\t */\n\taddOnPopStateHandler(handler) {\n\t\tthis._handlers.push(handler)\n\t},\n\n\t/**\n\t * Parse a query string from the hash part of the URL.\n\t * (workaround for IE8 / IE9)\n\t *\n\t * @return {string}\n\t */\n\t_parseHashQuery() {\n\t\tconst hash = window.location.hash\n\t\tconst pos = hash.indexOf('?')\n\t\tif (pos >= 0) {\n\t\t\treturn hash.substr(pos + 1)\n\t\t}\n\t\tif (hash.length) {\n\t\t\t// remove hash sign\n\t\t\treturn hash.substr(1)\n\t\t}\n\t\treturn ''\n\t},\n\n\t_decodeQuery(query) {\n\t\treturn query.replace(/\\+/g, ' ')\n\t},\n\n\t/**\n\t * Parse the query/search part of the URL.\n\t * Also try and parse it from the URL hash (for IE8)\n\t *\n\t * @return {object} map of parameters\n\t */\n\tparseUrlQuery() {\n\t\tconst query = this._parseHashQuery()\n\t\tlet params\n\t\t// try and parse from URL hash first\n\t\tif (query) {\n\t\t\tparams = OC.parseQueryString(this._decodeQuery(query))\n\t\t}\n\t\t// else read from query attributes\n\t\tparams = _.extend(params || {}, OC.parseQueryString(this._decodeQuery(location.search)))\n\t\treturn params || {}\n\t},\n\n\t_onPopState(e) {\n\t\tif (this._cancelPop) {\n\t\t\tthis._cancelPop = false\n\t\t\treturn\n\t\t}\n\t\tlet params\n\t\tif (!this._handlers.length) {\n\t\t\treturn\n\t\t}\n\t\tparams = (e && e.state)\n\t\tif (_.isString(params)) {\n\t\t\tparams = OC.parseQueryString(params)\n\t\t} else if (!params) {\n\t\t\tparams = this.parseUrlQuery() || {}\n\t\t}\n\t\tfor (let i = 0; i < this._handlers.length; i++) {\n\t\t\tthis._handlers[i](params)\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize as humanFileSize } from '@nextcloud/files'\nimport moment from 'moment'\nimport logger from '../logger.js'\nimport OC from './index.js'\nimport History from './util-history.js'\n\n/**\n * @param {any} t -\n */\nfunction chunkify(t) {\n\t// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288\n\tconst tz = []\n\tlet x = 0\n\tlet y = -1\n\tlet n = 0\n\tlet c\n\n\twhile (x < t.length) {\n\t\tc = t.charAt(x)\n\t\t// only include the dot in strings\n\t\tconst m = ((!n && c === '.') || (c >= '0' && c <= '9'))\n\t\tif (m !== n) {\n\t\t\t// next chunk\n\t\t\ty++\n\t\t\ttz[y] = ''\n\t\t\tn = m\n\t\t}\n\t\ttz[y] += c\n\t\tx++\n\t}\n\treturn tz\n}\n\n/**\n * Utility functions\n *\n * @namespace OC.Util\n */\nexport default {\n\n\tHistory,\n\n\t/**\n\t * @deprecated use https://nextcloud.github.io/nextcloud-files/functions/formatFileSize.html\n\t */\n\thumanFileSize,\n\n\t/**\n\t * Returns a file size in bytes from a humanly readable string\n\t * Makes 2kB to 2048.\n\t * Inspired by computerFileSize in helper.php\n\t *\n\t * @param {string} string file size in human-readable format\n\t * @return {number} or null if string could not be parsed\n\t */\n\tcomputerFileSize(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\treturn null\n\t\t}\n\n\t\tconst s = string.toLowerCase().trim()\n\t\tlet bytes = null\n\n\t\tconst bytesArray = {\n\t\t\tb: 1,\n\t\t\tk: 1024,\n\t\t\tkb: 1024,\n\t\t\tmb: 1024 * 1024,\n\t\t\tm: 1024 * 1024,\n\t\t\tgb: 1024 * 1024 * 1024,\n\t\t\tg: 1024 * 1024 * 1024,\n\t\t\ttb: 1024 * 1024 * 1024 * 1024,\n\t\t\tt: 1024 * 1024 * 1024 * 1024,\n\t\t\tpb: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t\tp: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t}\n\n\t\tconst matches = s.match(/^[\\s+]?([0-9]*)(\\.([0-9]+))?( +)?([kmgtp]?b?)$/i)\n\t\tif (matches !== null) {\n\t\t\tbytes = parseFloat(s)\n\t\t\tif (!isFinite(bytes)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t\tif (matches[5]) {\n\t\t\tbytes = bytes * bytesArray[matches[5]]\n\t\t}\n\n\t\tbytes = Math.round(bytes)\n\t\treturn bytes\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @param {string} format date format, see momentjs docs\n\t * @return {string} timestamp formatted as requested\n\t */\n\tformatDate(timestamp, format) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tformat = format || 'LLL'\n\t\treturn moment(timestamp).format(format)\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @return {string} human readable difference from now\n\t */\n\trelativeModifiedDate(timestamp) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tconst diff = moment().diff(moment(timestamp))\n\t\tif (diff >= 0 && diff < 45000) {\n\t\t\treturn t('core', 'seconds ago')\n\t\t}\n\t\treturn moment(timestamp).fromNow()\n\t},\n\n\t/**\n\t * Returns the width of a generic browser scrollbar\n\t *\n\t * @return {number} width of scrollbar\n\t */\n\tgetScrollBarWidth() {\n\t\tif (this._scrollBarWidth) {\n\t\t\treturn this._scrollBarWidth\n\t\t}\n\n\t\tconst inner = document.createElement('p')\n\t\tinner.style.width = '100%'\n\t\tinner.style.height = '200px'\n\n\t\tconst outer = document.createElement('div')\n\t\touter.style.position = 'absolute'\n\t\touter.style.top = '0px'\n\t\touter.style.left = '0px'\n\t\touter.style.visibility = 'hidden'\n\t\touter.style.width = '200px'\n\t\touter.style.height = '150px'\n\t\touter.style.overflow = 'hidden'\n\t\touter.appendChild(inner)\n\n\t\tdocument.body.appendChild(outer)\n\t\tconst w1 = inner.offsetWidth\n\t\touter.style.overflow = 'scroll'\n\t\tlet w2 = inner.offsetWidth\n\t\tif (w1 === w2) {\n\t\t\tw2 = outer.clientWidth\n\t\t}\n\n\t\tdocument.body.removeChild(outer)\n\n\t\tthis._scrollBarWidth = (w1 - w2)\n\n\t\treturn this._scrollBarWidth\n\t},\n\n\t/**\n\t * Remove the time component from a given date\n\t *\n\t * @param {Date} date date\n\t * @return {Date} date with stripped time\n\t */\n\tstripTime(date) {\n\t\t// FIXME: likely to break when crossing DST\n\t\t// would be better to use a library like momentJS\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t},\n\n\t/**\n\t * Compare two strings to provide a natural sort\n\t *\n\t * @param {string} a first string to compare\n\t * @param {string} b second string to compare\n\t * @return {number} -1 if b comes before a, 1 if a comes before b\n\t * or 0 if the strings are identical\n\t */\n\tnaturalSortCompare(a, b) {\n\t\tlet x\n\t\tconst aa = chunkify(a)\n\t\tconst bb = chunkify(b)\n\n\t\tfor (x = 0; aa[x] && bb[x]; x++) {\n\t\t\tif (aa[x] !== bb[x]) {\n\t\t\t\tconst aNum = Number(aa[x])\n\t\t\t\tconst bNum = Number(bb[x])\n\t\t\t\t// note: == is correct here to include null == undefined\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\tif (aNum == aa[x] && bNum == bb[x]) {\n\t\t\t\t\treturn aNum - bNum\n\t\t\t\t} else {\n\t\t\t\t\t// Note: This locale setting isn't supported by all browsers but for the ones\n\t\t\t\t\t// that do there will be more consistency between client-server sorting\n\t\t\t\t\treturn aa[x].localeCompare(bb[x], OC.getLanguage())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn aa.length - bb.length\n\t},\n\n\t/**\n\t * Calls the callback in a given interval until it returns true\n\t *\n\t * @param {Function} callback function to call on success\n\t * @param {number} interval in milliseconds\n\t */\n\twaitFor(callback, interval) {\n\t\tconst internalCallback = function() {\n\t\t\tif (callback() !== true) {\n\t\t\t\tsetTimeout(internalCallback, interval)\n\t\t\t}\n\t\t}\n\n\t\tinternalCallback()\n\t},\n\n\t/**\n\t * Checks if a cookie with the given name is present and is set to the provided value.\n\t *\n\t * @param {string} name name of the cookie\n\t * @param {string} value value of the cookie\n\t * @return {boolean} true if the cookie with the given name has the given value\n\t */\n\tisCookieSetToValue(name, value) {\n\t\tconst cookies = document.cookie.split(';')\n\t\tfor (let i = 0; i < cookies.length; i++) {\n\t\t\tconst cookie = cookies[i].split('=')\n\t\t\tif (cookie[0].trim() === name && cookie[1].trim() === value) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nlet webroot = window._oc_webroot\n\nif (typeof webroot === 'undefined') {\n\twebroot = location.pathname\n\tconst pos = webroot.indexOf('/index.php/')\n\tif (pos !== -1) {\n\t\twebroot = webroot.substr(0, pos)\n\t} else {\n\t\twebroot = webroot.substr(0, webroot.lastIndexOf('/'))\n\t}\n}\n\nexport default webroot\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\nimport {\n\tgetCanonicalLocale,\n\tgetLanguage,\n\tgetLocale,\n} from '@nextcloud/l10n'\nimport {\n\tbasename,\n\tdirname,\n\tencodePath,\n\tisSamePath,\n\tjoin,\n} from '@nextcloud/paths'\nimport {\n\tgenerateFilePath,\n\tgenerateOcsUrl,\n\tgenerateRemoteUrl,\n\tgenerateUrl,\n\tgetRootUrl,\n\timagePath,\n\tlinkTo,\n} from '@nextcloud/router'\nimport logger from '../logger.js'\nimport { isUserAdmin } from './admin.js'\nimport { appConfig } from './appconfig.js'\nimport Apps from './apps.js'\nimport appswebroots from './appswebroots.js'\nimport Backbone from './backbone.js'\nimport { getCapabilities } from './capabilities.js'\nimport Config from './config.js'\nimport {\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n} from './constants.js'\nimport { currentUser, getCurrentUser } from './currentuser.js'\nimport { debug } from './debug.js'\nimport Dialogs from './dialogs.js'\nimport EventSource from './eventsource.js'\nimport L10N from './l10n.js'\nimport {\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n} from './menu.js'\nimport * as MimeType from './mimeType.js'\nimport msg from './msg.js'\nimport Notification from './notification.js'\nimport PasswordConfirmation from './password-confirmation.js'\nimport Plugins from './plugins.js'\nimport {\n\tbuild as buildQueryString,\n\tparse as parseQueryString,\n} from './query-string.ts'\nimport { getRequestToken } from './requesttoken.ts'\nimport {\n\tlinkToRemoteBase,\n} from './routing.js'\nimport Settings from './settings.js'\nimport { theme } from './theme.js'\nimport Util from './util.js'\nimport webroot from './webroot.js'\n\n/** @namespace OC */\nexport default {\n\t/*\n\t * Constants\n\t */\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n\n\t/*\n\t * Deprecated helpers to be removed\n\t */\n\tApps,\n\tappConfig,\n\tappswebroots,\n\tBackbone,\n\tconfig: Config,\n\t/**\n\t * Currently logged in user or null if none\n\t *\n\t * @type {string}\n\t * @deprecated use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tcurrentUser,\n\tdialogs: Dialogs,\n\tEventSource,\n\tMimeType,\n\t/**\n\t * Returns the currently logged in user or null if there is no logged in\n\t * user (public page mode)\n\t *\n\t * @since 9.0.0\n\t * @deprecated 19.0.0 use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tgetCurrentUser,\n\tisUserAdmin,\n\tL10N,\n\n\t/**\n\t * This is already handled by `interceptRequests` in `core/src/init.js`.\n\t *\n\t * @deprecated 33.0.0 - unused by Nextcloud and only a stub remains. Just remove usage.\n\t */\n\tregisterXHRForErrorProcessing: () => {},\n\n\t/**\n\t * Capabilities\n\t *\n\t * @type {Array}\n\t * @deprecated 20.0.0 use @nextcloud/capabilities instead\n\t */\n\tgetCapabilities,\n\n\t/*\n\t * Legacy menu helpers\n\t */\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n\n\t/*\n\t * Path helpers\n\t */\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tbasename,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tencodePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tdirname,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tisSamePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tjoinPaths: join,\n\n\t/**\n\t * @deprecated 20.0.0 use `getCanonicalLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetCanonicalLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLanguage` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLanguage,\n\n\t// Query string helpers\n\tbuildQueryString,\n\tparseQueryString,\n\n\tmsg,\n\tNotification,\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\tPasswordConfirmation,\n\tPlugins,\n\t/**\n\t * @deprecated 25.0.0 Use Vue based (`@nextcloud/vue`) settings components instead\n\t */\n\tSettings,\n\ttheme,\n\tUtil,\n\tdebug,\n\t/**\n\t * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tfilePath: generateFilePath,\n\t/**\n\t * @deprecated 19.0.0 use `generateUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgenerateUrl,\n\t/**\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgetRootPath: getRootUrl,\n\t/**\n\t * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\timagePath,\n\trequestToken: getRequestToken(),\n\t/**\n\t * @deprecated 19.0.0 use `linkTo` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkTo,\n\t/**\n\t * @param {string} service service name\n\t * @param {number} version OCS API version\n\t * @return {string} OCS API base path\n\t * @deprecated 19.0.0 use `generateOcsUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToOCS: (service, version) => {\n\t\treturn generateOcsUrl(service, {}, {\n\t\t\tocsVersion: version || 1,\n\t\t}) + '/'\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `generateRemoteUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToRemote: generateRemoteUrl,\n\tlinkToRemoteBase,\n\t/**\n\t * Relative path to Nextcloud root.\n\t * For example: \"/nextcloud\"\n\t *\n\t * @type {string}\n\t *\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t * @see OC#getRootPath\n\t */\n\twebroot,\n}\n\n// Keep the request token prop in sync\nsubscribe('csrf-token-update', (e) => {\n\tOC.requestToken = e.token\n\n\t// Logging might help debug (Sentry) issues\n\tlogger.info('OC.requestToken changed', { token: e.token })\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities'\nimport logger from '../logger.js'\n\n/**\n * Returns the capabilities\n *\n * @return {Array} capabilities\n *\n * @since 14.0.0\n */\nexport function getCapabilities() {\n\tif (OC.debug) {\n\t\tlogger.warn('OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities')\n\t}\n\treturn realGetCapabilities()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Parses a URL query string into a JS map\n *\n * @param queryString - Query string in the format param1=1234¶m2=abcde¶m3=xyz\n * @return Object containing key/values matching the URL parameters\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function parse(queryString) {\n const params = new URLSearchParams(queryString);\n return Object.fromEntries(params.entries());\n}\n/**\n * Builds a URL query from a JS map.\n *\n * @param params - Object containing key/values matching the URL parameters\n * @return String containing a URL query (without question) mark\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function build(params) {\n if (!params) {\n return '';\n }\n const search = new URLSearchParams(params);\n return search.toString();\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tgetRootUrl as realGetRootUrl,\n} from '@nextcloud/router'\n\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\nexport function linkToRemoteBase(service) {\n\treturn realGetRootUrl() + '/remote.php/' + service\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport OC from '../OC/index.js'\nimport L10n from '../OC/l10n.js'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tOC,\n\t\t}\n\t},\n\tmethods: {\n\t\tt: L10n.translate.bind(L10n),\n\t\tn: L10n.translatePlural.bind(L10n),\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport LoginView from './views/Login.vue'\nimport Nextcloud from './mixins/Nextcloud.js'\n// eslint-disable-next-line no-unused-vars\nimport OC from './OC/index.js' // TODO: Not needed but L10n breaks if removed\n\nVue.mixin(Nextcloud)\n\nconst View = Vue.extend(LoginView)\nnew View().$mount('#login')\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 27444,\n\t\"./ar-sa.js\": 27444,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n // eslint-disable-next-line no-console\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-form[data-v-f91ba7fe]{text-align:start;font-size:1rem;margin:0}.login-form__fieldset[data-v-f91ba7fe]{width:100%;display:flex;flex-direction:column;gap:.5rem}.login-form__headline[data-v-f91ba7fe]{text-align:center;overflow-wrap:anywhere}.login-form[data-v-f91ba7fe] input:invalid:not(:user-invalid){border-color:var(--color-border-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA,CACA,cAAA,CACA,QAAA,CAEA,uCACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,SAAA,CAGD,uCACC,iBAAA,CACA,sBAAA,CAID,8DACC,uDAAA\",\"sourcesContent\":[\"\\n.login-form {\\n\\ttext-align: start;\\n\\tfont-size: 1rem;\\n\\tmargin: 0;\\n\\n\\t&__fieldset {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: .5rem;\\n\\t}\\n\\n\\t&__headline {\\n\\t\\ttext-align: center;\\n\\t\\toverflow-wrap: anywhere;\\n\\t}\\n\\n\\t// Only show the error state if the user interacted with the login box\\n\\t:deep(input:invalid:not(:user-invalid)) {\\n\\t\\tborder-color: var(--color-border-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (typeof Symbol === 'function' && context[Symbol.iterator]) {\n var newContext = [];\n var iterator = context[Symbol.iterator]();\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n context = newContext;\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n });\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDbkUsWUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLFlBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBjb250ZXh0W1N5bWJvbC5pdGVyYXRvcl0pIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGV4dCA9IFtdO1xuICAgICAgICBjb25zdCBpdGVyYXRvciA9IGNvbnRleHRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBmb3IgKGxldCBpdCA9IGl0ZXJhdG9yLm5leHQoKTsgIWl0LmRvbmU7IGl0ID0gaXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgbmV3Q29udGV4dC5wdXNoKGl0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0ID0gbmV3Q29udGV4dDtcbiAgICAgICAgZm9yIChsZXQgaiA9IGNvbnRleHQubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihpLCBpLCBpID09PSBjb250ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIC8vIFdlJ3JlIHJ1bm5pbmcgdGhlIGl0ZXJhdGlvbnMgb25lIHN0ZXAgb3V0IG9mIHN5bmMgc28gd2UgY2FuIGRldGVjdFxuICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAvLyBhbiBpdGVybWVkaWF0ZSBrZXlzIGFycmF5LlxuICAgICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW9yS2V5ID0ga2V5O1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihwcmlvcktleSwgaSAtIDEsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIHJldCA9IGludmVyc2UodGhpcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.password-less-login-form[data-v-0b57a680]{display:flex;flex-direction:column;gap:.5rem;margin:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/PasswordLessLoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,QAAA\",\"sourcesContent\":[\"\\n.password-less-login-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 0.5rem;\\n\\tmargin: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n\n var defaultPropertyWhiteList = Object.create(null);\n // eslint-disable-next-line no-proto\n defaultPropertyWhiteList['__proto__'] = false;\n\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n _logger2['default'].log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMvQyxXQUFXOzs7O0FBRTlCLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFdEMsU0FBUyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUU7QUFDdkQsTUFBSSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELHdCQUFzQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUM5Qyx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQzs7QUFFbkQsTUFBSSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUVuRCwwQkFBd0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRTlDLFNBQU87QUFDTCxjQUFVLEVBQUU7QUFDVixlQUFTLEVBQUUsNkNBQ1Qsd0JBQXdCLEVBQ3hCLGNBQWMsQ0FBQyxzQkFBc0IsQ0FDdEM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQyw2QkFBNkI7S0FDM0Q7QUFDRCxXQUFPLEVBQUU7QUFDUCxlQUFTLEVBQUUsNkNBQ1Qsc0JBQXNCLEVBQ3RCLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDbkM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQywwQkFBMEI7S0FDeEQ7R0FDRixDQUFDO0NBQ0g7O0FBRU0sU0FBUyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRTtBQUN4RSxNQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtBQUNoQyxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDakUsTUFBTTtBQUNMLFdBQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztHQUNwRTtDQUNGOztBQUVELFNBQVMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLFlBQVksRUFBRTtBQUMvRCxNQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDbkUsV0FBTyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDO0dBQ25FO0FBQ0QsTUFBSSx5QkFBeUIsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO0FBQ3hELFdBQU8seUJBQXlCLENBQUMsWUFBWSxDQUFDO0dBQy9DO0FBQ0QsZ0NBQThCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDN0MsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFlBQVksRUFBRTtBQUNwRCxNQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtBQUMzQyxvQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDdEMsd0JBQU8sR0FBRyxDQUNSLE9BQU8sRUFDUCxpRUFBK0QsWUFBWSxvSUFDSCxvSEFDMkMsQ0FDcEgsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxxQkFBcUIsR0FBRztBQUN0QyxRQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsWUFBWSxFQUFJO0FBQ3BELFdBQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7R0FDdkMsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoicHJvdG8tYWNjZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTmV3TG9va3VwT2JqZWN0IH0gZnJvbSAnLi9jcmVhdGUtbmV3LWxvb2t1cC1vYmplY3QnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBsb2dnZWRQcm9wZXJ0aWVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChydW50aW1lT3B0aW9ucykge1xuICBsZXQgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ2NvbnN0cnVjdG9yJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19kZWZpbmVHZXR0ZXJfXyddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lU2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2xvb2t1cEdldHRlcl9fJ10gPSBmYWxzZTtcblxuICBsZXQgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvXG4gIGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdFsnX19wcm90b19fJ10gPSBmYWxzZTtcblxuICByZXR1cm4ge1xuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHdoaXRlbGlzdDogY3JlYXRlTmV3TG9va3VwT2JqZWN0KFxuICAgICAgICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b1Byb3BlcnRpZXNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9Qcm9wZXJ0aWVzQnlEZWZhdWx0XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCxcbiAgICAgICAgcnVudGltZU9wdGlvbnMuYWxsb3dlZFByb3RvTWV0aG9kc1xuICAgICAgKSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogcnVudGltZU9wdGlvbnMuYWxsb3dQcm90b01ldGhvZHNCeURlZmF1bHRcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXN1bHRJc0FsbG93ZWQocmVzdWx0LCBwcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkge1xuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBjaGVja1doaXRlTGlzdChwcm90b0FjY2Vzc0NvbnRyb2wubWV0aG9kcywgcHJvcGVydHlOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLnByb3BlcnRpZXMsIHByb3BlcnR5TmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZSwgcHJvcGVydHlOYW1lKSB7XG4gIGlmIChwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLndoaXRlbGlzdFtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSA9PT0gdHJ1ZTtcbiAgfVxuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLmRlZmF1bHRWYWx1ZTtcbiAgfVxuICBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKSB7XG4gIGlmIChsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gIT09IHRydWUpIHtcbiAgICBsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gPSB0cnVlO1xuICAgIGxvZ2dlci5sb2coXG4gICAgICAnZXJyb3InLFxuICAgICAgYEhhbmRsZWJhcnM6IEFjY2VzcyBoYXMgYmVlbiBkZW5pZWQgdG8gcmVzb2x2ZSB0aGUgcHJvcGVydHkgXCIke3Byb3BlcnR5TmFtZX1cIiBiZWNhdXNlIGl0IGlzIG5vdCBhbiBcIm93biBwcm9wZXJ0eVwiIG9mIGl0cyBwYXJlbnQuXFxuYCArXG4gICAgICAgIGBZb3UgY2FuIGFkZCBhIHJ1bnRpbWUgb3B0aW9uIHRvIGRpc2FibGUgdGhlIGNoZWNrIG9yIHRoaXMgd2FybmluZzpcXG5gICtcbiAgICAgICAgYFNlZSBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vYXBpLXJlZmVyZW5jZS9ydW50aW1lLW9wdGlvbnMuaHRtbCNvcHRpb25zLXRvLWNvbnRyb2wtcHJvdG90eXBlLWFjY2VzcyBmb3IgZGV0YWlsc2BcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldExvZ2dlZFByb3BlcnRpZXMoKSB7XG4gIE9iamVjdC5rZXlzKGxvZ2dlZFByb3BlcnRpZXMpLmZvckVhY2gocHJvcGVydHlOYW1lID0+IHtcbiAgICBkZWxldGUgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n var wrapper = function wrapper() /* dynamic arguments */{\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","/*\n * vim: expandtab shiftwidth=4 softtabstop=4\n */\n\nconst dav = {}\n\ndav._XML_CHAR_MAP = {\n '<': '<',\n '>': '>',\n '&': '&',\n '\"': '"',\n \"'\": '''\n};\n\ndav._escapeXml = function(s) {\n return s.replace(/[<>&\"']/g, function (ch) {\n return dav._XML_CHAR_MAP[ch];\n });\n};\n\ndav.Client = function(options) {\n var i;\n for(i in options) {\n this[i] = options[i];\n }\n\n};\n\ndav.Client.prototype = {\n\n baseUrl : null,\n\n userName : null,\n\n password : null,\n\n\n xmlNamespaces : {\n 'DAV:' : 'd'\n },\n\n /**\n * Generates a propFind request.\n *\n * @param {string} url Url to do the propfind request on\n * @param {Array} properties List of properties to retrieve.\n * @param {string} depth \"0\", \"1\" or \"infinity\"\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propFind : function(url, properties, depth, headers) {\n\n if(typeof depth === \"undefined\") {\n depth = '0';\n }\n\n // depth header must be a string, in case a number was passed in\n depth = '' + depth;\n\n headers = headers || {};\n\n headers['Depth'] = depth;\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '\\n' +\n '\\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(properties[ii]);\n if (this.xmlNamespaces[property.namespace]) {\n body+=' <' + this.xmlNamespaces[property.namespace] + ':' + property.name + ' />\\n';\n } else {\n body+=' \\n';\n }\n\n }\n body+=' \\n';\n body+='';\n\n return this.request('PROPFIND', url, headers, body).then(\n function(result) {\n\n if (depth === '0') {\n return {\n status: result.status,\n body: result.body[0],\n xhr: result.xhr\n };\n } else {\n return {\n status: result.status,\n body: result.body,\n xhr: result.xhr\n };\n }\n\n }.bind(this)\n );\n\n },\n\n /**\n * Renders a \"d:set\" block for the given properties.\n *\n * @param {Object.} properties\n * @return {String} XML \"\" block\n */\n _renderPropSet: function(properties) {\n var body = ' \\n' +\n ' \\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(ii);\n var propName;\n var propValue = properties[ii];\n if (this.xmlNamespaces[property.namespace]) {\n propName = this.xmlNamespaces[property.namespace] + ':' + property.name;\n } else {\n propName = 'x:' + property.name + ' xmlns:x=\"' + property.namespace + '\"';\n }\n\n // FIXME: hard-coded for now until we allow properties to\n // specify whether to be escaped or not\n if (propName !== 'd:resourcetype') {\n propValue = dav._escapeXml(propValue);\n }\n body += ' <' + propName + '>' + propValue + '\\n';\n }\n body +=' \\n';\n body +=' \\n';\n return body;\n },\n\n /**\n * Generates a propPatch request.\n *\n * @param {string} url Url to do the proppatch request on\n * @param {Object.} properties List of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propPatch : function(url, properties, headers) {\n headers = headers || {};\n\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '\\n' +\n '} [properties] list of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n mkcol : function(url, properties, headers) {\n var body = '';\n headers = headers || {};\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n if (properties) {\n body =\n '\\n' +\n ' 0) {\n var subNodes = [];\n // filter out text nodes\n for (var j = 0; j < propNode.childNodes.length; j++) {\n var node = propNode.childNodes[j];\n if (node.nodeType === 1) {\n subNodes.push(node);\n }\n }\n if (subNodes.length) {\n content = subNodes;\n }\n }\n\n return content || propNode.textContent || propNode.text || '';\n },\n\n /**\n * Parses a multi-status response body.\n *\n * @param {string} xmlBody\n * @param {Array}\n */\n parseMultiStatus : function(xmlBody) {\n\n var parser = new DOMParser();\n var doc = parser.parseFromString(xmlBody, \"application/xml\");\n\n var resolver = function(foo) {\n var ii;\n for(ii in this.xmlNamespaces) {\n if (this.xmlNamespaces[ii] === foo) {\n return ii;\n }\n }\n }.bind(this);\n\n var responseIterator = doc.evaluate('/d:multistatus/d:response', doc, resolver, XPathResult.ANY_TYPE, null);\n\n var result = [];\n var responseNode = responseIterator.iterateNext();\n\n while(responseNode) {\n\n var response = {\n href : null,\n propStat : []\n };\n\n response.href = doc.evaluate('string(d:href)', responseNode, resolver, XPathResult.ANY_TYPE, null).stringValue;\n\n var propStatIterator = doc.evaluate('d:propstat', responseNode, resolver, XPathResult.ANY_TYPE, null);\n var propStatNode = propStatIterator.iterateNext();\n\n while(propStatNode) {\n var propStat = {\n status : doc.evaluate('string(d:status)', propStatNode, resolver, XPathResult.ANY_TYPE, null).stringValue,\n properties : {},\n };\n\n var propIterator = doc.evaluate('d:prop/*', propStatNode, resolver, XPathResult.ANY_TYPE, null);\n\n var propNode = propIterator.iterateNext();\n while(propNode) {\n var content = this._parsePropNode(propNode);\n propStat.properties['{' + propNode.namespaceURI + '}' + propNode.localName] = content;\n propNode = propIterator.iterateNext();\n\n }\n response.propStat.push(propStat);\n propStatNode = propStatIterator.iterateNext();\n\n\n }\n\n result.push(response);\n responseNode = responseIterator.iterateNext();\n\n }\n\n return result;\n\n },\n\n /**\n * Takes a relative url, and maps it to an absolute url, using the baseUrl\n *\n * @param {string} url\n * @return {string}\n */\n resolveUrl : function(url) {\n\n // Note: this is rudamentary.. not sure yet if it handles every case.\n if (/^https?:\\/\\//i.test(url)) {\n // absolute\n return url;\n }\n\n var baseParts = this.parseUrl(this.baseUrl);\n if (url.charAt('/')) {\n // Url starts with a slash\n return baseParts.root + url;\n }\n\n // Url does not start with a slash, we need grab the base url right up until the last slash.\n var newUrl = baseParts.root + '/';\n if (baseParts.path.lastIndexOf('/')!==-1) {\n newUrl = newUrl = baseParts.path.subString(0, baseParts.path.lastIndexOf('/')) + '/';\n }\n newUrl+=url;\n return url;\n\n },\n\n /**\n * Parses a url and returns its individual components.\n *\n * @param {String} url\n * @return {Object}\n */\n parseUrl : function(url) {\n\n var parts = url.match(/^(?:([A-Za-z]+):)?(\\/{0,3})([0-9.\\-A-Za-z]+)(?::(\\d+))?(?:\\/([^?#]*))?(?:\\?([^#]*))?(?:#(.*))?$/);\n var result = {\n url : parts[0],\n scheme : parts[1],\n host : parts[3],\n port : parts[4],\n path : parts[5],\n query : parts[6],\n fragment : parts[7],\n };\n result.root =\n result.scheme + '://' +\n result.host +\n (result.port ? ':' + result.port : '');\n\n return result;\n\n },\n\n parseClarkNotation : function(propertyName) {\n\n var result = propertyName.match(/^{([^}]+)}(.*)$/);\n if (!result) {\n return;\n }\n\n return {\n name : result[2],\n namespace : result[1]\n };\n\n }\n\n};\n\nmodule.exports = {\n dav,\n Client: dav.Client,\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\nfieldset[data-v-2c0ecaf9] {\n\ttext-align: center;\n}\ninput[type=submit][data-v-2c0ecaf9] {\n\tmargin-top: 20px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/UpdatePassword.vue\"],\"names\":[],\"mappings\":\";AAmIA;CACA,kBAAA;AACA;AAEA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.8';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","/* global globalThis */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n // https://mathiasbynens.be/notes/globalthis\n (function () {\n if (typeof globalThis === 'object') return;\n Object.prototype.__defineGetter__('__magic__', function () {\n return this;\n });\n __magic__.globalThis = __magic__; // eslint-disable-line no-undef\n delete Object.prototype.__magic__;\n })();\n\n var $Handlebars = globalThis.Handlebars;\n\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (globalThis.Handlebars === Handlebars) {\n globalThis.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOzs7QUFHbEMsR0FBQyxZQUFXO0FBQ1YsUUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsT0FBTztBQUMzQyxVQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxZQUFXO0FBQ3hELGFBQU8sSUFBSSxDQUFDO0tBQ2IsQ0FBQyxDQUFDO0FBQ0gsYUFBUyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDakMsV0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztHQUNuQyxDQUFBLEVBQUcsQ0FBQzs7QUFFTCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDOzs7QUFHMUMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDeEMsZ0JBQVUsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQ3JDO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGdsb2JhbFRoaXMgKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKEhhbmRsZWJhcnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2dsb2JhbHRoaXNcbiAgKGZ1bmN0aW9uKCkge1xuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybjtcbiAgICBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oJ19fbWFnaWNfXycsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSk7XG4gICAgX19tYWdpY19fLmdsb2JhbFRoaXMgPSBfX21hZ2ljX187IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5fX21hZ2ljX187XG4gIH0pKCk7XG5cbiAgY29uc3QgJEhhbmRsZWJhcnMgPSBnbG9iYWxUaGlzLkhhbmRsZWJhcnM7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgSGFuZGxlYmFycy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuSGFuZGxlYmFycyA9PT0gSGFuZGxlYmFycykge1xuICAgICAgZ2xvYmFsVGhpcy5IYW5kbGViYXJzID0gJEhhbmRsZWJhcnM7XG4gICAgfVxuICAgIHJldHVybiBIYW5kbGViYXJzO1xuICB9O1xufVxuIl19\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.reset-password-form[data-v-759a0fdd]{display:flex;flex-direction:column;gap:.5rem;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/ResetPassword.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.reset-password-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: .5rem;\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// 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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2710\":\"0c2e26891ac1c05900e0\",\"4471\":\"9b3c8620f038b7593241\",\"7004\":\"da5a822695a273d4d2eb\",\"7394\":\"5b773f16893ed80e0246\",\"7859\":\"cd6f48c919ca307639eb\",\"8127\":\"b62d5791b2d7256af4a8\",\"8453\":\"0ad2c9a35eee895d5980\",\"9553\":\"c8ce7bd4445f06a11ae6\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1418;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1418: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(24050)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","_interopRequireDefault","obj","__esModule","exports","registerDefaultHelpers","instance","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","helpers","hooks","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","runtimeVersions","REVISION_CHANGES","compilerVersions","_exception2","template","templateSpec","env","main","decorator","main_d","VM","compiler","templateWasPrecompiledWithCompilerV7","container","strict","name","loc","lookupProperty","parent","propertyName","result","Object","prototype","hasOwnProperty","call","_internalProtoAccess","resultIsAllowed","protoAccessControl","lookup","depths","len","length","i","lambda","current","context","escapeExpression","Utils","invokePartial","partial","options","hash","extend","ids","resolvePartial","this","extendedOptions","compile","partials","compilerOptions","indent","lines","split","l","join","fn","ret","programs","program","data","declaredBlockParams","blockParams","programWrapper","wrapProgram","value","depth","_parent","mergeIfNeeded","param","common","nullContext","seal","noop","arguments","undefined","_setup","useData","createFrame","root","initData","useBlockParams","useDepths","concat","executeDecorators","isTop","decorators","mergedHelpers","keys","forEach","helper","_internalWrapHelper","wrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","createProtoAccessControl","keepHelperInHelpers","allowCallsToHelperMissing","_helpers","_child","currentPartialBlock","contextPath","partialBlock","Function","newObj","key","_interopRequireWildcard","prog","currentDepths","props","___CSS_LOADER_EXPORT___","push","module","id","errorProps","Exception","message","node","line","endLineNumber","column","endColumn","start","end","tmp","Error","constructor","idx","captureStackTrace","lineNumber","defineProperty","enumerable","nop","registerHelper","SafeString","string","toString","toHTML","base","_handlebarsSafeString2","_handlebarsException2","runtime","_handlebarsNoConflict2","create","hb","HandlebarsEnvironment","spec","inst","self","global","_","$","Backbone","previousBackbone","slice","Array","VERSION","noConflict","emulateHTTP","emulateJSON","_listening","Events","eventSplitter","eventsApi","iteratee","events","callback","opts","names","test","on","_events","onApi","ctx","listening","_listeners","interop","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","Listening","error","tryCatchOn","handlers","count","e","off","offApi","listeners","stopListening","isEmpty","remaining","j","handler","_callback","cleanup","once","onceMap","bind","listenToOnce","map","offer","apply","trigger","Math","max","args","triggerApi","objEvents","allEvents","all","triggerEvents","ev","a1","a2","a3","listener","unbind","Model","attributes","attrs","preinitialize","cid","cidPrefix","collection","parse","defaults","set","changed","initialize","validationError","idAttribute","toJSON","clone","sync","get","attr","escape","has","matches","val","_validate","unset","silent","changes","changing","_changing","_previousAttributes","prev","isEqual","prevId","_pending","clear","hasChanged","changedAttributes","diff","old","previous","previousAttributes","fetch","model","success","resp","serverAttrs","wrapError","save","wait","validate","method","isNew","patch","xhr","destroy","defer","url","urlError","replace","encodeURIComponent","isValid","Collection","models","comparator","_reset","reset","setOptions","add","remove","merge","addOptions","splice","array","insert","at","min","tail","singular","isArray","removed","_removeModels","added","merged","_isModel","toAdd","toMerge","toRemove","modelMap","sort","sortable","sortAttr","isString","existing","_prepareModel","_addReference","orderChanged","some","m","index","_removeReference","previousModels","pop","unshift","shift","_byId","modelId","where","first","findWhere","isFunction","sortBy","pluck","callbackOpts","_forwardPristineError","values","CollectionIterator","ITERATOR_VALUES","ITERATOR_KEYS","entries","ITERATOR_KEYSVALUES","indexOf","_onModelEvent","event","$$iterator","Symbol","iterator","kind","_collection","_kind","_index","next","done","View","pick","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","find","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","undelegate","_createElement","document","createElement","className","_setAttributes","addUnderscoreMethods","Class","methods","attribute","each","cb","defaultVal","addMethod","isObject","modelMatcher","matcher","collect","reduce","foldl","inject","reduceRight","foldr","detect","filter","select","reject","every","any","include","includes","contains","invoke","toArray","size","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","chain","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","pairs","invert","omit","config","Base","mixin","mappings","functions","memo","type","methodMap","params","dataType","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","decodeURIComponent","History","checkUrl","window","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","path","charAt","getFragment","_usePushState","_wantsHashChange","_trailingSlash","trailingSlash","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","notfound","decodedFragment","title","assign","_updateHash","protoProps","staticProps","child","__super__","_debug","factory","components","ArrowRight","NcButton","String","default","t","valueLoading","loading","Boolean","required","invertedColors","styleTagTransform","setAttributes","domAPI","insertStyleElement","locals","_vm","_c","_self","$event","$emit","scopedSlots","_u","staticClass","proxy","_v","_s","computed","userNameInputLengthIs255","user","userInputHelperText","LoginButton","NcCheckboxRadioSwitch","NcPasswordField","NcTextField","NcNoteCard","mixins","AuthMixin","username","redirectUrl","errors","messages","throttleDelay","Number","autoCompleteAllowed","remembermeAllowed","directLogin","emailStates","setup","headlineText","productName","OC","theme","sanitize","loginTimeout","loadState","requestToken","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","timezoneOffset","Date","getTimezoneOffset","password","rememberme","visible","resetFormTimeout","debounce","handleResetForm","isError","invalidPassword","userDisabled","errorLabel","apacheAuthFailed","csrfCheckFailed","internalException","loadingIcon","imagePath","loginActionUrl","generateUrl","emailEnabled","state","loginText","watch","mounted","$refs","inputField","input","focus","updateUsername","submit","preventDefault","ref","_e","_l","class","staticStyle","shake","$$v","expression","domProps","_browserSupportsWebAuthnInternals","stubThis","globalThis","PublicKeyCredential","code","cause","super","configurable","writable","createNewAbortSignal","controller","abortError","abort","newController","AbortController","signal","cancelCeremony","buffer","bytes","Uint8Array","str","charCode","fromCharCode","btoa","base64URLString","base64","padLength","padded","padEnd","binary","atob","ArrayBuffer","charCodeAt","_browserSupportsWebAuthnAutofillInternals","descriptor","transports","attachments","attachment","emits","fillColor","_b","$attrs","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","NoValidCredentials","defineComponent","InformationIcon","LockOpenIcon","NcEmptyContent","isHttps","isLocalhost","supportsWebauthn","browserSupportsWebAuthn","validCredentials","authenticate","loginForm","checkValidity","logger","debug","async","loginName","Axios","post","allowCredentials","optionsJSON","challenge","console","warn","useBrowserAutofill","verifyBrowserAutofillInput","publicKey","getOptions","Promise","resolve","globalPublicKeyCredential","isConditionalMediationAvailable","browserSupportsWebAuthnAutofill","querySelectorAll","mediation","credential","navigator","credentials","err","AbortSignal","effectiveDomain","hostname","rpId","identifyAuthenticationError","rawId","response","userHandle","authenticatorData","clientDataJSON","signature","clientExtensionResults","getClientExtensionResults","authenticatorAttachment","startWebauthnAuthentication","startAuthentication","completeAuthentication","changeUsername","authData","finishAuthentication","then","defaultRedirectUrl","catch","_setupProxy","resetPasswordLink","axios","status","resetPasswordTarget","encrypted","proceed","encryption","msg","directives","rawName","target","composing","_i","$$a","$$el","$$c","checked","$$i","warning","query","queryString","search","localStorage","sessionStorage","indexedDBList","indexedDB","databases","deleteDatabase","wipeBrowserStorages","LoginForm","PasswordLessLoginForm","ResetPassword","UpdatePassword","passwordlessLogin","resetPassword","canResetPassword","resetPasswordUser","direct","hasPasswordless","countAlternativeLogins","alternativeLogins","protocol","hideLoginForm","passwordResetFinished","alternativeLogin","isAdmin","_oc_isadmin","appConfig","oc_appconfig","dynamicSlideToggleEnabled","Apps","enableDynamicSlideToggle","removeClass","show","hide","addClass","_oc_appswebroots","update","delete","read","parsePropFindResult","davProperties","subResult","propStat","properties","propKey","parseIdFromLocation","queryPos","substr","parts","isSuccessStatus","callPropPatch","client","headers","propPatch","changedProp","convertModelAttributesToDavProperties","VendorBackbone","davCall","dav","Client","baseUrl","xmlNamespaces","resolveUrl","requesttoken","propFind","propsMapping","results","callPropFind","request","callMkCol","responseJson","locationHeader","getResponseHeader","callMethod","davSync","isCollection","hasInnerCollection","usePUT","_oc_config","rawUid","getElementsByTagName","getAttribute","displayName","currentUser","_oc_debug","Dialogs","YES_NO_BUTTONS","OK_BUTTONS","FILEPICKER_TYPE_CHOOSE","FILEPICKER_TYPE_MOVE","FILEPICKER_TYPE_COPY","FILEPICKER_TYPE_COPY_MOVE","FILEPICKER_TYPE_CUSTOM","alert","text","modal","OK_BUTTON","info","confirm","confirmDestructive","buttons","DialogBuilder","setName","setText","setButtons","label","variant","clicked","_getLegacyButtons","confirmHtml","setHTML","prompt","spawnDialog","defineAsyncComponent","inputName","isPassword","filepicker","multiselect","mimetype","_modal","FilePickerType","Choose","legacyCallback","startsWith","nodes","builder","getFilePickerBuilder","button","addButton","defaultButton","setButtonFactory","displayname","basename","multiSelect","file","CopyMove","Copy","icon","IconCopy","Move","setMimeTypeFilter","setFilter","fileid","mime","mtime","getTime","permissions","etag","hasPreview","mountType","quotaAvailableBytes","sharePermissions","nodeToLegacyFile","allowDirectories","allowDirectoryChooser","setMultiSelect","startAt","content","dialogType","allowHtml","setSeverity","dialog","_clicked","buttonList","cancel","_fileexistsshown","fileexists","original","replacement","dialogDeferred","addConflict","$conflicts","$conflict","$originalDiv","$replacementDiv","Util","humanFileSize","formatDate","lastModified","directory","urlSpec","x","y","c","forceIcon","previewpath","Files","generatePreviewUrl","css","FileReader","reader","onload","blob","Blob","URL","webkitURL","originalUrl","createObjectURL","image","Image","img","canvas","width","height","getContext","drawImage","W","H","W2","H2","round","getImageData","img2","data2","ratio_w","ratio_h","ratio_w_half","ceil","ratio_h_half","x2","weight","weights","weights_alpha","gx_r","gx_g","gx_b","gx_a","center_y","yy","floor","dy","abs","center_x","w0","xx","dx","w","sqrt","clearRect","putImageData","resampleHermite","toDataURL","crop","readAsArrayBuffer","getCroppedPreview","MimeType","getIconUrl","checkboxId","append","prop","dialogName","dialogId","n","children","_getFileExistsTemplate","$tmpl","$dlg","octemplate","dialog_name","allnewfiles","allexistingfiles","why","what","buttonlist","classes","click","onCancel","ocdialog","onContinue","closeOnEscape","closeButton","$primaryButton","closest","updatePrimaryButton","checkedCount","$checkbox","fail","promise","$fileexistsTemplate","filePath","tmpl","getRequestToken","dataset","OCEventSource","joinChar","dataStr","typelessListeners","closed","useFallBack","EventSource","iframeId","iframeCount","fallBackSources","appendChild","source","onmessage","listen","fallBackCallBack","lastLength","load","loadTranslations","register","_unregister","unregister","translate","translatePlural","Handlebars","app","currentMenu","currentMenuToggle","hideMenus","complete","lastMenu","slideUp","iconCache","Map","mimeType","MimeTypeList","aliases","gotIcon","folder","themes","getRootUrl","getMimeTypeIcon","files","OCA","Theming","cacheBuster","clearIconCache","startSaving","startAction","querySelector","HTMLElement","textContent","classList","getAnimations","animation","finishedSaving","finishedAction","finishedSuccess","finishedError","setTimeout","animate","opacity","duration","fill","updatableNotification","getDefaultNotificationFunction","setDefault","$row","toastify","hideToast","showHtml","html","isHTML","timeout","TOAST_PERMANENT_TIMEOUT","toast","showMessage","toastElement","escapeHTML","showUpdate","showTemporary","TOAST_DEFAULT_TIMEOUT","isHidden","requiresPasswordConfirmation","isPasswordConfirmationRequired","requirePasswordConfirmation","rejectCallback","confirmPassword","_plugins","targetName","plugin","plugins","getPlugins","attach","targetObject","detach","_cachedGroups","rebuildNavigation","generateOcsUrl","ocs","meta","statuscode","emit","apps","dispatchEvent","Event","setupGroupsSelect","$elements","extraOptions","groups","group","excludeAdmins","select2","placeholder","allowClear","multiple","toggleSelect","separator","initSelection","selection","groupId","formatResult","formatSelection","escapeMarkup","Notification","_theme","debug_1","hasRequiredDebug","constants","hasRequiredConstants","requireDebug","process","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","freeze","DEFAULT","HIDDEN","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","major_1","hasRequiredMajor","parse_1","hasRequiredParse","valid_1","hasRequiredValid","re","requireSemver","safeRe","re2","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","loose","emptyOpts","requireParseOptions","compareIdentifiers","numeric","b2","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","version","includePrerelease","TypeError","trim","LOOSE","FULL","raw","major","minor","prerelease","num","format","compare","other","compareMain","comparePre","compareBuild","inc","release","identifier","identifierBase","isNaN","requireMajor","throwErrors","er","requireParse","v","requireValid","UploadFromDevice","CreateNew","Other","ReservedName","Character","Extension","humanList","humanListBinary","Name","Modified","Size","_handlers","_pushState","strParams","buildQueryString","userAgent","toLowerCase","parseInt","patterns","pattern","ii","stroke","removeAttribute","setAttribute","replaceState","_cancelPop","addOnPopStateHandler","_parseHashQuery","pos","_decodeQuery","parseUrlQuery","parseQueryString","_onPopState","chunkify","tz","skipSmallSizes","binaryPrefixes","base1000","order","log","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","computerFileSize","s","isFinite","b","k","kb","mb","gb","g","tb","pb","p","timestamp","TESTING","moment","relativeModifiedDate","fromNow","getScrollBarWidth","_scrollBarWidth","inner","outer","position","top","left","visibility","overflow","w1","offsetWidth","w2","clientWidth","stripTime","date","getFullYear","getMonth","getDate","naturalSortCompare","a","aa","bb","aNum","bNum","localeCompare","getLanguage","waitFor","internalCallback","isCookieSetToValue","cookies","cookie","webroot","_oc_webroot","coreApps","menuSpeed","PERMISSION_ALL","PERMISSION_CREATE","PERMISSION_DELETE","PERMISSION_NONE","PERMISSION_READ","PERMISSION_SHARE","PERMISSION_UPDATE","TAG_FAVORITE","appswebroots","Config","dialogs","isUserAdmin","L10N","registerXHRForErrorProcessing","getCapabilities","realGetCapabilities","registerMenu","$toggle","$menuEl","toggle","headerMenu","isClickableElement","is","slideToggle","showMenu","unregisterMenu","encodePath","dirname","isSamePath","joinPaths","getCanonicalLocale","getLocale","URLSearchParams","fromEntries","PasswordConfirmation","Plugins","Settings","generateFilePath","getRootPath","linkTo","linkToOCS","service","ocsVersion","linkToRemote","generateRemoteUrl","linkToRemoteBase","realGetRootUrl","subscribe","L10n","Vue","Nextcloud","LoginView","$mount","_utils","inverse","appendContextPath","webpackContext","req","webpackContextResolve","__webpack_require__","o","field","level","lookupLevel","levelMap","_len","_key","priorKey","execIteration","newContext","it","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","whitelist","_createNewLookupObject","createNewLookupObject","allowedProtoProperties","defaultValue","allowProtoPropertiesByDefault","allowedProtoMethods","allowProtoMethodsByDefault","protoAccessControlForType","loggedProperties","_logger2","logUnexpecedPropertyAccessOnce","checkWhiteList","resetLoggedProperties","transformOptionsFn","registerDefaultDecorators","_decoratorsInline2","registerDecorator","ch","_XML_CHAR_MAP","userName","namespace","property","parseClarkNotation","_renderPropSet","propName","propValue","_escapeXml","mkcol","responseType","xhrProvider","onProgress","upload","send","fulfill","onreadystatechange","readyState","resultBody","parseMultiStatus","ontimeout","XMLHttpRequest","_parsePropNode","propNode","childNodes","subNodes","nodeType","xmlBody","doc","DOMParser","parseFromString","resolver","foo","responseIterator","evaluate","XPathResult","ANY_TYPE","responseNode","iterateNext","stringValue","propStatIterator","propStatNode","propIterator","namespaceURI","localName","baseParts","parseUrl","subString","scheme","host","port","conditional","includeZero","possible","badChars","escapeChar","object","frame","chr","_decorators","objectType","unregisterHelper","registerPartial","unregisterPartial","unregisterDecorator","resetLoggedPropertyAccesses","sources","__defineGetter__","__magic__","$Handlebars","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","r","getter","d","definition","f","chunkId","promises","u","script","needAttach","scripts","charset","nc","onScriptComplete","onerror","clearTimeout","doneFns","parentNode","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","toUpperCase","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"core-login.js?v=34c5765febd208d7a85b","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///nextcloud/core/src/views/Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///nextcloud/core/src/components/login/LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///nextcloud/node_modules/backbone/backbone.js","webpack:///nextcloud/core/src/components/login/LoginButton.vue","webpack:///nextcloud/core/src/components/login/LoginButton.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/login/LoginButton.vue?428d","webpack://nextcloud/./core/src/components/login/LoginButton.vue?14f0","webpack://nextcloud/./core/src/components/login/LoginButton.vue?82aa","webpack:///nextcloud/core/src/mixins/auth.js","webpack:///nextcloud/core/src/components/login/LoginForm.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/login/LoginForm.vue","webpack://nextcloud/./core/src/components/login/LoginForm.vue?33a8","webpack://nextcloud/./core/src/components/login/LoginForm.vue?a678","webpack://nextcloud/./core/src/components/login/LoginForm.vue?4366","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthn.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/webAuthnError.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/webAuthnAbortService.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/bufferToBase64URLString.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/base64URLStringToBuffer.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthnAutofill.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/toPublicKeyCredentialDescriptor.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/toAuthenticatorAttachment.js","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/LockOpen.vue?104d","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue?vue&type=template&id=d7513faa","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/WebAuthnAuthenticationService.ts","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/methods/startAuthentication.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/identifyAuthenticationError.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/isValidDomain.js","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?2492","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?09eb","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?16ec","webpack:///nextcloud/core/src/components/login/ResetPassword.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/components/login/ResetPassword.vue","webpack://nextcloud/./core/src/components/login/ResetPassword.vue?e816","webpack://nextcloud/./core/src/components/login/ResetPassword.vue?9d75","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?84cd","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?30ca","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?1c8f","webpack:///nextcloud/core/src/views/Login.vue","webpack:///nextcloud/core/src/utils/xhr-request.js","webpack:///nextcloud/core/src/views/Login.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/Login.vue?6921","webpack://nextcloud/./core/src/views/Login.vue?3468","webpack://nextcloud/./core/src/views/Login.vue?ae59","webpack:///nextcloud/core/src/OC/admin.js","webpack:///nextcloud/core/src/OC/appconfig.js","webpack:///nextcloud/core/src/OC/apps.js","webpack:///nextcloud/core/src/OC/appswebroots.js","webpack:///nextcloud/core/src/OC/backbone-webdav.js","webpack:///nextcloud/core/src/OC/backbone.js","webpack:///nextcloud/core/src/OC/config.js","webpack:///nextcloud/core/src/OC/currentuser.js","webpack:///nextcloud/core/src/OC/debug.js","webpack:///nextcloud/core/src/OC/dialogs.js","webpack:///nextcloud/core/src/OC/requesttoken.ts","webpack:///nextcloud/core/src/OC/eventsource.js","webpack:///nextcloud/core/src/OC/l10n.js","webpack:///nextcloud/core/src/OC/menu.js","webpack:///nextcloud/core/src/OC/constants.js","webpack:///nextcloud/core/src/OC/mimeType.js","webpack:///nextcloud/core/src/OC/msg.ts","webpack:///nextcloud/core/src/OC/notification.js","webpack:///nextcloud/core/src/OC/password-confirmation.js","webpack:///nextcloud/core/src/OC/plugins.js","webpack:///nextcloud/core/src/OC/settings.js","webpack:///nextcloud/core/src/OC/theme.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/core/src/OC/util-history.js","webpack:///nextcloud/core/src/OC/util.js","webpack:///nextcloud/core/src/OC/webroot.js","webpack:///nextcloud/core/src/OC/index.js","webpack:///nextcloud/core/src/OC/capabilities.js","webpack:///nextcloud/core/src/OC/query-string.ts","webpack:///nextcloud/core/src/OC/routing.js","webpack:///nextcloud/core/src/mixins/Nextcloud.js","webpack:///nextcloud/core/src/login.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///nextcloud/core/src/components/login/LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///nextcloud/node_modules/davclient.js/lib/client.js","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///nextcloud/node_modules/handlebars/runtime.js","webpack:///nextcloud/core/src/components/login/ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n if (result == null) {\n return result;\n }\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({ lookupProperty: lookupProperty }, options);\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztH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QUFDbkMsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFkLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ2xELENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQ09NUElMRVJfUkVWSVNJT04sXG4gIGNyZWF0ZUZyYW1lLFxuICBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04sXG4gIFJFVklTSU9OX0NIQU5HRVNcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG1vdmVIZWxwZXJUb0hvb2tzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHdyYXBIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsL3dyYXBIZWxwZXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sLFxuICByZXN1bHRJc0FsbG93ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgY29uc3QgY29tcGlsZXJSZXZpc2lvbiA9IChjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdKSB8fCAxLFxuICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChcbiAgICBjb21waWxlclJldmlzaW9uID49IExBU1RfQ09NUEFUSUJMRV9DT01QSUxFUl9SRVZJU0lPTiAmJlxuICAgIGNvbXBpbGVyUmV2aXNpb24gPD0gQ09NUElMRVJfUkVWSVNJT05cbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04pIHtcbiAgICBjb25zdCBydW50aW1lVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2N1cnJlbnRSZXZpc2lvbl0sXG4gICAgICBjb21waWxlclZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjb21waWxlclJldmlzaW9uXTtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIHJ1bnRpbWVWZXJzaW9ucyArXG4gICAgICAgICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcnVudGltZSB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlckluZm9bMV0gK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgY29uc3QgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3ID1cbiAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXIgJiYgdGVtcGxhdGVTcGVjLmNvbXBpbGVyWzBdID09PSA3O1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFydGlhbCA9IGVudi5WTS5yZXNvbHZlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGV4dGVuZGVkT3B0aW9ucyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICBwcm90b0FjY2Vzc0NvbnRyb2w6IHRoaXMucHJvdG9BY2Nlc3NDb250cm9sXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBwYXJ0aWFsLFxuICAgICAgY29udGV4dCxcbiAgICAgIGV4dGVuZGVkT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKFxuICAgICAgICBwYXJ0aWFsLFxuICAgICAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJPcHRpb25zLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgICAnVGhlIHBhcnRpYWwgJyArXG4gICAgICAgICAgb3B0aW9ucy5uYW1lICtcbiAgICAgICAgICAnIGNvdWxkIG5vdCBiZSBjb21waWxlZCB3aGVuIHJ1bm5pbmcgaW4gcnVudGltZS1vbmx5IG1vZGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUsIGxvYykge1xuICAgICAgaWYgKCFvYmogfHwgIShuYW1lIGluIG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignXCInICsgbmFtZSArICdcIiBub3QgZGVmaW5lZCBpbiAnICsgb2JqLCB7XG4gICAgICAgICAgbG9jOiBsb2NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5KG9iaiwgbmFtZSk7XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIGxldCByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uKGRlcHRocywgbmFtZSkge1xuICAgICAgY29uc3QgbGVuID0gZGVwdGhzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRlcHRoc1tpXSAmJiBjb250YWluZXIubG9va3VwUHJvcGVydHkoZGVwdGhzW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICBmbiA9IHRoaXMuZm4oaSk7XG4gICAgICBpZiAoZGF0YSB8fCBkZXB0aHMgfHwgYmxvY2tQYXJhbXMgfHwgZGVjbGFyZWRCbG9ja1BhcmFtcykge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHdyYXBQcm9ncmFtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgaSxcbiAgICAgICAgICBmbixcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlY2xhcmVkQmxvY2tQYXJhbXMsXG4gICAgICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICAgICAgZGVwdGhzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2VJZk5lZWRlZDogZnVuY3Rpb24ocGFyYW0sIGNvbW1vbikge1xuICAgICAgbGV0IG9iaiA9IHBhcmFtIHx8IGNvbW1vbjtcblxuICAgICAgaWYgKHBhcmFtICYmIGNvbW1vbiAmJiBwYXJhbSAhPT0gY29tbW9uKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9XG4gICAgICAgICAgY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXVxuICAgICAgICAgICAgPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKVxuICAgICAgICAgICAgOiBvcHRpb25zLmRlcHRocztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHRocyA9IFtjb250ZXh0XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWluKGNvbnRleHQgLyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJycgK1xuICAgICAgICB0ZW1wbGF0ZVNwZWMubWFpbihcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtYWluID0gZXhlY3V0ZURlY29yYXRvcnMoXG4gICAgICB0ZW1wbGF0ZVNwZWMubWFpbixcbiAgICAgIG1haW4sXG4gICAgICBjb250YWluZXIsXG4gICAgICBvcHRpb25zLmRlcHRocyB8fCBbXSxcbiAgICAgIGRhdGEsXG4gICAgICBibG9ja1BhcmFtc1xuICAgICk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwpIHtcbiAgICAgIGxldCBtZXJnZWRIZWxwZXJzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuaGVscGVycywgb3B0aW9ucy5oZWxwZXJzKTtcbiAgICAgIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKTtcbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gbWVyZ2VkSGVscGVycztcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIC8vIFVzZSBtZXJnZUlmTmVlZGVkIGhlcmUgdG8gcHJldmVudCBjb21waWxpbmcgZ2xvYmFsIHBhcnRpYWxzIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZUlmTmVlZGVkKFxuICAgICAgICAgIG9wdGlvbnMucGFydGlhbHMsXG4gICAgICAgICAgZW52LnBhcnRpYWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwgfHwgdGVtcGxhdGVTcGVjLnVzZURlY29yYXRvcnMpIHtcbiAgICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBVdGlscy5leHRlbmQoXG4gICAgICAgICAge30sXG4gICAgICAgICAgZW52LmRlY29yYXRvcnMsXG4gICAgICAgICAgb3B0aW9ucy5kZWNvcmF0b3JzXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IHt9O1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChvcHRpb25zKTtcblxuICAgICAgbGV0IGtlZXBIZWxwZXJJbkhlbHBlcnMgPVxuICAgICAgICBvcHRpb25zLmFsbG93Q2FsbHNUb0hlbHBlck1pc3NpbmcgfHxcbiAgICAgICAgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3O1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnaGVscGVyTWlzc2luZycsIGtlZXBIZWxwZXJJbkhlbHBlcnMpO1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnYmxvY2tIZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wgPSBvcHRpb25zLnByb3RvQWNjZXNzQ29udHJvbDsgLy8gaW50ZXJuYWwgb3B0aW9uXG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IG9wdGlvbnMuaG9va3M7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oXG4gICAgICBjb250YWluZXIsXG4gICAgICBpLFxuICAgICAgdGVtcGxhdGVTcGVjW2ldLFxuICAgICAgZGF0YSxcbiAgICAgIDAsXG4gICAgICBibG9ja1BhcmFtcyxcbiAgICAgIGRlcHRoc1xuICAgICk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShcbiAgY29udGFpbmVyLFxuICBpLFxuICBmbixcbiAgZGF0YSxcbiAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgYmxvY2tQYXJhbXMsXG4gIGRlcHRoc1xuKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKFxuICAgICAgZGVwdGhzICYmXG4gICAgICBjb250ZXh0ICE9IGRlcHRoc1swXSAmJlxuICAgICAgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKVxuICAgICkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oXG4gICAgICBjb250YWluZXIsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGFpbmVyLmhlbHBlcnMsXG4gICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zICYmIFtvcHRpb25zLmJsb2NrUGFyYW1zXS5jb25jYXQoYmxvY2tQYXJhbXMpLFxuICAgICAgY3VycmVudERlcHRoc1xuICAgICk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBBUEksIHRoZXJlZm9yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHNob3VsZCBub3QgYmUgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKFxuICAgICAgY29udGV4dCxcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgICkge1xuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhKGNvbnRleHQsIGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8ICEoJ3Jvb3QnIGluIGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGEgPyBjcmVhdGVGcmFtZShkYXRhKSA6IHt9O1xuICAgIGRhdGEucm9vdCA9IGNvbnRleHQ7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpIHtcbiAgaWYgKGZuLmRlY29yYXRvcikge1xuICAgIGxldCBwcm9wcyA9IHt9O1xuICAgIHByb2cgPSBmbi5kZWNvcmF0b3IoXG4gICAgICBwcm9nLFxuICAgICAgcHJvcHMsXG4gICAgICBjb250YWluZXIsXG4gICAgICBkZXB0aHMgJiYgZGVwdGhzWzBdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGhlbHBlck5hbWUgPT4ge1xuICAgIGxldCBoZWxwZXIgPSBtZXJnZWRIZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV0gPSBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzc0xvb2t1cFByb3BlcnR5T3B0aW9uKGhlbHBlciwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gd3JhcEhlbHBlcihoZWxwZXIsIG9wdGlvbnMgPT4ge1xuICAgIHJldHVybiBVdGlscy5leHRlbmQoeyBsb29rdXBQcm9wZXJ0eSB9LCBvcHRpb25zKTtcbiAgfSk7XG59XG4iXX0=\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-box[data-v-518c0816]{width:320px;box-sizing:border-box}.login-box__wrapper[data-v-518c0816]{display:flex;flex-direction:column;gap:calc(2*var(--default-grid-baseline))}.login-box__alternative-logins[data-v-518c0816]{display:flex;flex-direction:column;gap:.75rem}.fade-enter-active[data-v-518c0816],.fade-leave-active[data-v-518c0816]{transition:opacity .3s}.fade-enter[data-v-518c0816],.fade-leave-to[data-v-518c0816]{opacity:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/Login.vue\"],\"names\":[],\"mappings\":\"AACA,4BAEC,WAAA,CACA,qBAAA,CAEA,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CAGD,gDACC,YAAA,CACA,qBAAA,CACA,UAAA,CAIF,wEACC,sBAAA,CAGD,6DACC,SAAA\",\"sourcesContent\":[\"\\n.login-box {\\n\\t// Same size as dashboard panels\\n\\twidth: 320px;\\n\\tbox-sizing: border-box;\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(2 * var(--default-grid-baseline));\\n\\t}\\n\\n\\t&__alternative-logins {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 0.75rem;\\n\\t}\\n}\\n\\n.fade-enter-active, .fade-leave-active {\\n\\ttransition: opacity .3s;\\n}\\n\\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\\n\\topacity: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.button-vue[data-v-bbf83d00]{margin-top:.5rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginButton.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA\",\"sourcesContent\":[\"\\n.button-vue {\\n\\tmargin-top: .5rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","// Backbone.js 1.6.1\n\n// (c) 2010-2024 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.6.1';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n\n // Just _.defaults would work fine, but the additional _.extends\n // is in there for historical reasons. See #3843.\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) {\n var prevId = this.id;\n this.id = this.get(this.idAttribute);\n if (this.id !== prevId) {\n this.trigger('changeId', this, prevId, options);\n }\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) {\n m.off('error', collection._forwardPristineError, collection);\n collection.add(m, callbackOpts);\n }\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n // In case of wait:true, our collection is not listening to any\n // of the model's events yet, so it will not forward the error\n // event. In this special case, we need to listen for it\n // separately and handle the event just once.\n // (The reason we don't need to do this for the sync event is\n // in the success handler above: we add the model first, which\n // causes the collection to listen, and then invoke the callback\n // that triggers the event.)\n if (wait) {\n model.once('error', this._forwardPristineError, this);\n }\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs, idAttribute) {\n return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n\n var model;\n if (this.model.prototype) {\n model = new this.model(attrs, options);\n } else {\n // ES class methods didn't have prototype\n model = this.model(attrs, options);\n }\n\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n if (models.length > 0 && !options.silent) delete options.index;\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'changeId') {\n var prevId = this.modelId(model.previousAttributes(), model.idAttribute);\n var id = this.modelId(model.attributes, model.idAttribute);\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n },\n\n // Internal callback method used in `create`. It serves as a\n // stand-in for the `_onModelEvent` method, which is not yet bound\n // during the `wait` period of the `create` call. We still want to\n // forward any `'error'` event at the end of the `wait` period,\n // hence a customized callback.\n _forwardPristineError: function(model, collection, options) {\n // Prevent double forward if the model was already in the\n // collection before the call to `create`.\n if (this.has(model)) return;\n this._onModelEvent('error', model, collection, options);\n }\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes, model.idAttribute);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._trailingSlash = this.options.trailingSlash;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) {\n if (!this.matchRoot()) return this.notfound();\n return false;\n }\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return this.notfound();\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n }) || this.notfound();\n },\n\n // When no route could be matched, this method is called internally to\n // trigger the `'notfound'` event. It returns `false` so that it can be used\n // in tail position.\n notfound: function() {\n this.trigger('notfound');\n return false;\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Strip trailing slash on the root unless _trailingSlash is true\n var rootPath = this.root;\n if (!this._trailingSlash && (fragment === '' || fragment.charAt(0) === '?')) {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n // Provide useful information when things go wrong. This method is not meant\n // to be used directly; it merely provides the necessary introspection for the\n // external `debugInfo` function.\n Backbone._debug = function() {\n return {root: root, _: _};\n };\n\n return Backbone;\n});\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginButton.vue?vue&type=template&id=bbf83d00&scoped=true\"\nimport script from \"./LoginButton.vue?vue&type=script&lang=js\"\nexport * from \"./LoginButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bbf83d00\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcButton',{attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"wide\":true,\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('div',{staticClass:\"submit-wrapper__icon icon-loading-small-dark\"}):_c('ArrowRight',{staticClass:\"submit-wrapper__icon\"})]},proxy:true}])},[_vm._v(\"\\n\\t\"+_vm._s(!_vm.loading ? _vm.value : _vm.valueLoading)+\"\\n\\t\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\tcomputed: {\n\t\tuserNameInputLengthIs255() {\n\t\t\treturn this.user.length >= 255\n\t\t},\n\t\tuserInputHelperText() {\n\t\t\tif (this.userNameInputLengthIs255) {\n\t\t\t\treturn t('core', 'Email length is at max (255)')\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=f91ba7fe&scoped=true\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=f91ba7fe&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f91ba7fe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"method\":\"post\",\"name\":\"login\",\"action\":_vm.loginActionUrl},on:{\"submit\":_vm.submit}},[_c('fieldset',{staticClass:\"login-form__fieldset\",attrs:{\"data-login-form\":\"\"}},[(_vm.apacheAuthFailed)?_c('NcNoteCard',{attrs:{\"title\":_vm.t('core', 'Server side authentication failed!'),\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.csrfCheckFailed)?_c('NcNoteCard',{attrs:{\"heading\":_vm.t('core', 'Session error'),\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'It appears your session token has expired, please refresh the page and try again.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.messages.length > 0)?_c('NcNoteCard',_vm._l((_vm.messages),function(message,index){return _c('div',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(message)),_c('br')])}),0):_vm._e(),_vm._v(\" \"),(_vm.internalException)?_c('NcNoteCard',{class:_vm.t('core', 'An internal error occurred.'),attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please try again or contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hidden\",attrs:{\"id\":\"message\"}},[_c('img',{staticClass:\"float-spinner\",attrs:{\"alt\":\"\",\"src\":_vm.loadingIcon}}),_vm._v(\" \"),_c('span',{attrs:{\"id\":\"messageText\"}}),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})]),_vm._v(\" \"),_c('h2',{staticClass:\"login-form__headline\",attrs:{\"data-login-form-headline\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.headlineText)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{ref:\"user\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"user\",\"label\":_vm.loginText,\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"none\",\"spellchecking\":false,\"autocomplete\":_vm.autoCompleteAllowed ? 'username' : 'off',\"required\":\"\",\"error\":_vm.userNameInputLengthIs255,\"helper-text\":_vm.userInputHelperText,\"data-login-form-input-user\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"password\",\"name\":\"password\",\"spellchecking\":false,\"autocapitalize\":\"none\",\"autocomplete\":_vm.autoCompleteAllowed ? 'current-password' : 'off',\"label\":_vm.t('core', 'Password'),\"helper-text\":_vm.errorLabel,\"error\":_vm.isError,\"visible\":_vm.visible,\"data-login-form-input-password\":\"\",\"required\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_vm._v(\" \"),(_vm.remembermeAllowed)?_c('NcCheckboxRadioSwitch',{ref:\"rememberme\",attrs:{\"id\":\"rememberme\",\"name\":\"rememberme\",\"value\":\"1\",\"data-login-form-input-rememberme\":\"\"},model:{value:(_vm.rememberme),callback:function ($$v) {_vm.rememberme=$$v},expression:\"rememberme\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Remember me'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"data-login-form-submit\":\"\",\"loading\":_vm.loading}}),_vm._v(\" \"),(_vm.redirectUrl)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"redirect_url\"},domProps:{\"value\":_vm.redirectUrl}}):_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone\"},domProps:{\"value\":_vm.timezone}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone_offset\"},domProps:{\"value\":_vm.timezoneOffset}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"requesttoken\"},domProps:{\"value\":_vm.requestToken}}),_vm._v(\" \"),(_vm.directLogin)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"direct\",\"value\":\"1\"}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Determine if the browser is capable of Webauthn\n */\nexport function browserSupportsWebAuthn() {\n return _browserSupportsWebAuthnInternals.stubThis(globalThis?.PublicKeyCredential !== undefined &&\n typeof globalThis.PublicKeyCredential === 'function');\n}\n/**\n * Make it possible to stub the return value during testing\n * @ignore Don't include this in docs output\n */\nexport const _browserSupportsWebAuthnInternals = {\n stubThis: (value) => value,\n};\n","/**\n * A custom Error used to return a more nuanced error detailing _why_ one of the eight documented\n * errors in the spec was raised after calling `navigator.credentials.create()` or\n * `navigator.credentials.get()`:\n *\n * - `AbortError`\n * - `ConstraintError`\n * - `InvalidStateError`\n * - `NotAllowedError`\n * - `NotSupportedError`\n * - `SecurityError`\n * - `TypeError`\n * - `UnknownError`\n *\n * Error messages were determined through investigation of the spec to determine under which\n * scenarios a given error would be raised.\n */\nexport class WebAuthnError extends Error {\n constructor({ message, code, cause, name, }) {\n // @ts-ignore: help Rollup understand that `cause` is okay to set\n super(message, { cause });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = name ?? cause.name;\n this.code = code;\n }\n}\n","class BaseWebAuthnAbortService {\n constructor() {\n Object.defineProperty(this, \"controller\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n createNewAbortSignal() {\n // Abort any existing calls to navigator.credentials.create() or navigator.credentials.get()\n if (this.controller) {\n const abortError = new Error('Cancelling existing WebAuthn API call for new one');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n }\n const newController = new AbortController();\n this.controller = newController;\n return newController.signal;\n }\n cancelCeremony() {\n if (this.controller) {\n const abortError = new Error('Manually cancelling existing WebAuthn API call');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n this.controller = undefined;\n }\n }\n}\n/**\n * A service singleton to help ensure that only a single WebAuthn ceremony is active at a time.\n *\n * Users of **@simplewebauthn/browser** shouldn't typically need to use this, but it can help e.g.\n * developers building projects that use client-side routing to better control the behavior of\n * their UX in response to router navigation events.\n */\nexport const WebAuthnAbortService = new BaseWebAuthnAbortService();\n","/**\n * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various\n * credential response ArrayBuffers to string for sending back to the server as JSON.\n *\n * Helper method to compliment `base64URLStringToBuffer`\n */\nexport function bufferToBase64URLString(buffer) {\n const bytes = new Uint8Array(buffer);\n let str = '';\n for (const charCode of bytes) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n return base64String.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n}\n","/**\n * Convert from a Base64URL-encoded string to an Array Buffer. Best used when converting a\n * credential ID from a JSON string to an ArrayBuffer, like in allowCredentials or\n * excludeCredentials\n *\n * Helper method to compliment `bufferToBase64URLString`\n */\nexport function base64URLStringToBuffer(base64URLString) {\n // Convert from Base64URL to Base64\n const base64 = base64URLString.replace(/-/g, '+').replace(/_/g, '/');\n /**\n * Pad with '=' until it's a multiple of four\n * (4 - (85 % 4 = 1) = 3) % 4 = 3 padding\n * (4 - (86 % 4 = 2) = 2) % 4 = 2 padding\n * (4 - (87 % 4 = 3) = 1) % 4 = 1 padding\n * (4 - (88 % 4 = 0) = 4) % 4 = 0 padding\n */\n const padLength = (4 - (base64.length % 4)) % 4;\n const padded = base64.padEnd(base64.length + padLength, '=');\n // Convert to a binary string\n const binary = atob(padded);\n // Convert binary string to buffer\n const buffer = new ArrayBuffer(binary.length);\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\n","import { browserSupportsWebAuthn } from './browserSupportsWebAuthn.js';\n/**\n * Determine if the browser supports conditional UI, so that WebAuthn credentials can\n * be shown to the user in the browser's typical password autofill popup.\n */\nexport function browserSupportsWebAuthnAutofill() {\n if (!browserSupportsWebAuthn()) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n /**\n * I don't like the `as unknown` here but there's a `declare var PublicKeyCredential` in\n * TS' DOM lib that's making it difficult for me to just go `as PublicKeyCredentialFuture` as I\n * want. I think I'm fine with this for now since it's _supposed_ to be temporary, until TS types\n * have a chance to catch up.\n */\n const globalPublicKeyCredential = globalThis\n .PublicKeyCredential;\n if (globalPublicKeyCredential?.isConditionalMediationAvailable === undefined) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n return _browserSupportsWebAuthnAutofillInternals.stubThis(globalPublicKeyCredential.isConditionalMediationAvailable());\n}\n// Make it possible to stub the return value during testing\nexport const _browserSupportsWebAuthnAutofillInternals = {\n stubThis: (value) => value,\n};\n","import { base64URLStringToBuffer } from './base64URLStringToBuffer.js';\nexport function toPublicKeyCredentialDescriptor(descriptor) {\n const { id } = descriptor;\n return {\n ...descriptor,\n id: base64URLStringToBuffer(id),\n /**\n * `descriptor.transports` is an array of our `AuthenticatorTransportFuture` that includes newer\n * transports that TypeScript's DOM lib is ignorant of. Convince TS that our list of transports\n * are fine to pass to WebAuthn since browsers will recognize the new value.\n */\n transports: descriptor.transports,\n };\n}\n","const attachments = ['cross-platform', 'platform'];\n/**\n * If possible coerce a `string` value into a known `AuthenticatorAttachment`\n */\nexport function toAuthenticatorAttachment(attachment) {\n if (!attachment) {\n return;\n }\n if (attachments.indexOf(attachment) < 0) {\n return;\n }\n return attachment;\n}\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LockOpen.vue?vue&type=template&id=d7513faa\"\nimport script from \"./LockOpen.vue?vue&type=script&lang=js\"\nexport * from \"./LockOpen.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-open-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { startAuthentication as startWebauthnAuthentication } from '@simplewebauthn/browser';\nimport logger from '../logger.js';\nexport class NoValidCredentials extends Error {\n}\n/**\n * Start webautn authentication\n * This loads the challenge, connects to the authenticator and returns the repose that needs to be sent to the server.\n *\n * @param loginName Name to login\n */\nexport async function startAuthentication(loginName) {\n const url = generateUrl('/login/webauthn/start');\n const { data } = await Axios.post(url, { loginName });\n if (!data.allowCredentials || data.allowCredentials.length === 0) {\n logger.error('No valid credentials returned for webauthn');\n throw new NoValidCredentials();\n }\n return await startWebauthnAuthentication({ optionsJSON: data });\n}\n/**\n * Verify webauthn authentication\n *\n * @param authData The authentication data to sent to the server\n */\nexport async function finishAuthentication(authData) {\n const url = generateUrl('/login/webauthn/finish');\n const { data } = await Axios.post(url, { data: JSON.stringify(authData) });\n return data;\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"","import { bufferToBase64URLString } from '../helpers/bufferToBase64URLString.js';\nimport { base64URLStringToBuffer } from '../helpers/base64URLStringToBuffer.js';\nimport { browserSupportsWebAuthn } from '../helpers/browserSupportsWebAuthn.js';\nimport { browserSupportsWebAuthnAutofill } from '../helpers/browserSupportsWebAuthnAutofill.js';\nimport { toPublicKeyCredentialDescriptor } from '../helpers/toPublicKeyCredentialDescriptor.js';\nimport { identifyAuthenticationError } from '../helpers/identifyAuthenticationError.js';\nimport { WebAuthnAbortService } from '../helpers/webAuthnAbortService.js';\nimport { toAuthenticatorAttachment } from '../helpers/toAuthenticatorAttachment.js';\n/**\n * Begin authenticator \"login\" via WebAuthn assertion\n *\n * @param optionsJSON Output from **@simplewebauthn/server**'s `generateAuthenticationOptions()`\n * @param useBrowserAutofill (Optional) Initialize conditional UI to enable logging in via browser autofill prompts. Defaults to `false`.\n * @param verifyBrowserAutofillInput (Optional) Ensure a suitable `` element is present when `useBrowserAutofill` is `true`. Defaults to `true`.\n */\nexport async function startAuthentication(options) {\n // @ts-ignore: Intentionally check for old call structure to warn about improper API call\n if (!options.optionsJSON && options.challenge) {\n console.warn('startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.');\n // @ts-ignore: Reassign the options, passed in as a positional argument, to the expected variable\n options = { optionsJSON: options };\n }\n const { optionsJSON, useBrowserAutofill = false, verifyBrowserAutofillInput = true, } = options;\n if (!browserSupportsWebAuthn()) {\n throw new Error('WebAuthn is not supported in this browser');\n }\n // We need to avoid passing empty array to avoid blocking retrieval\n // of public key\n let allowCredentials;\n if (optionsJSON.allowCredentials?.length !== 0) {\n allowCredentials = optionsJSON.allowCredentials?.map(toPublicKeyCredentialDescriptor);\n }\n // We need to convert some values to Uint8Arrays before passing the credentials to the navigator\n const publicKey = {\n ...optionsJSON,\n challenge: base64URLStringToBuffer(optionsJSON.challenge),\n allowCredentials,\n };\n // Prepare options for `.get()`\n const getOptions = {};\n /**\n * Set up the page to prompt the user to select a credential for authentication via the browser's\n * input autofill mechanism.\n */\n if (useBrowserAutofill) {\n if (!(await browserSupportsWebAuthnAutofill())) {\n throw Error('Browser does not support WebAuthn autofill');\n }\n // Check for an with \"webauthn\" in its `autocomplete` attribute\n const eligibleInputs = document.querySelectorAll(\"input[autocomplete$='webauthn']\");\n // WebAuthn autofill requires at least one valid input\n if (eligibleInputs.length < 1 && verifyBrowserAutofillInput) {\n throw Error('No with \"webauthn\" as the only or last value in its `autocomplete` attribute was detected');\n }\n // `CredentialMediationRequirement` doesn't know about \"conditional\" yet as of\n // typescript@4.6.3\n getOptions.mediation = 'conditional';\n // Conditional UI requires an empty allow list\n publicKey.allowCredentials = [];\n }\n // Finalize options\n getOptions.publicKey = publicKey;\n // Set up the ability to cancel this request if the user attempts another\n getOptions.signal = WebAuthnAbortService.createNewAbortSignal();\n // Wait for the user to complete assertion\n let credential;\n try {\n credential = (await navigator.credentials.get(getOptions));\n }\n catch (err) {\n throw identifyAuthenticationError({ error: err, options: getOptions });\n }\n if (!credential) {\n throw new Error('Authentication was not completed');\n }\n const { id, rawId, response, type } = credential;\n let userHandle = undefined;\n if (response.userHandle) {\n userHandle = bufferToBase64URLString(response.userHandle);\n }\n // Convert values to base64 to make it easier to send back to the server\n return {\n id,\n rawId: bufferToBase64URLString(rawId),\n response: {\n authenticatorData: bufferToBase64URLString(response.authenticatorData),\n clientDataJSON: bufferToBase64URLString(response.clientDataJSON),\n signature: bufferToBase64URLString(response.signature),\n userHandle,\n },\n type,\n clientExtensionResults: credential.getClientExtensionResults(),\n authenticatorAttachment: toAuthenticatorAttachment(credential.authenticatorAttachment),\n };\n}\n","import { isValidDomain } from './isValidDomain.js';\nimport { WebAuthnError } from './webAuthnError.js';\n/**\n * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.get()`\n */\nexport function identifyAuthenticationError({ error, options, }) {\n const { publicKey } = options;\n if (!publicKey) {\n throw Error('options was missing required publicKey property');\n }\n if (error.name === 'AbortError') {\n if (options.signal instanceof AbortSignal) {\n // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 16)\n return new WebAuthnError({\n message: 'Authentication ceremony was sent an abort signal',\n code: 'ERROR_CEREMONY_ABORTED',\n cause: error,\n });\n }\n }\n else if (error.name === 'NotAllowedError') {\n /**\n * Pass the error directly through. Platforms are overloading this error beyond what the spec\n * defines and we don't want to overwrite potentially useful error messages.\n */\n return new WebAuthnError({\n message: error.message,\n code: 'ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY',\n cause: error,\n });\n }\n else if (error.name === 'SecurityError') {\n const effectiveDomain = globalThis.location.hostname;\n if (!isValidDomain(effectiveDomain)) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 5)\n return new WebAuthnError({\n message: `${globalThis.location.hostname} is an invalid domain`,\n code: 'ERROR_INVALID_DOMAIN',\n cause: error,\n });\n }\n else if (publicKey.rpId !== effectiveDomain) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 6)\n return new WebAuthnError({\n message: `The RP ID \"${publicKey.rpId}\" is invalid for this domain`,\n code: 'ERROR_INVALID_RP_ID',\n cause: error,\n });\n }\n }\n else if (error.name === 'UnknownError') {\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 1)\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 12)\n return new WebAuthnError({\n message: 'The authenticator was unable to process the specified options, or could not create a new assertion signature',\n code: 'ERROR_AUTHENTICATOR_GENERAL_ERROR',\n cause: error,\n });\n }\n return error;\n}\n","/**\n * A simple test to determine if a hostname is a properly-formatted domain name\n *\n * A \"valid domain\" is defined here: https://url.spec.whatwg.org/#valid-domain\n *\n * Regex sourced from here:\n * https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n */\nexport function isValidDomain(hostname) {\n return (\n // Consider localhost valid as well since it's okay wrt Secure Contexts\n hostname === 'localhost' ||\n /^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i.test(hostname));\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PasswordLessLoginForm.vue?vue&type=template&id=0b57a680&scoped=true\"\nimport script from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./PasswordLessLoginForm.vue?vue&type=style&index=0&id=0b57a680&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b57a680\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return ((_vm.isHttps || _vm.isLocalhost) && _vm.supportsWebauthn)?_c('form',{ref:\"loginForm\",staticClass:\"password-less-login-form\",attrs:{\"aria-labelledby\":\"password-less-login-form-title\",\"method\":\"post\",\"name\":\"login\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',{attrs:{\"id\":\"password-less-login-form-title\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"required\":\"\",\"model-value\":_vm.user,\"autocomplete\":_vm.autoCompleteAllowed ? 'on' : 'off',\"error\":!_vm.validCredentials,\"label\":_vm.t('core', 'Login or email'),\"placeholder\":_vm.t('core', 'Login or email'),\"helper-text\":!_vm.validCredentials ? _vm.t('core', 'Your account is not setup for passwordless login.') : ''},on:{\"update:value\":_vm.changeUsername}}),_vm._v(\" \"),(_vm.validCredentials)?_c('LoginButton',{attrs:{\"loading\":_vm.loading},on:{\"click\":_vm.authenticate}}):_vm._e()],1):(!_vm.isHttps && !_vm.isLocalhost)?_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Your connection is not secure'),\"description\":_vm.t('core', 'Passwordless authentication is only available over a secure connection.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockOpenIcon')]},proxy:true}])}):_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Browser not supported'),\"description\":_vm.t('core', 'Passwordless authentication is not supported in your browser.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InformationIcon')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"reset-password-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('core', 'Reset password')))]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"id\":\"user\",\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"off\",\"label\":_vm.t('core', 'Login or email'),\"error\":_vm.userNameInputLengthIs255,\"helper-text\":_vm.userInputHelperText,\"required\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password')}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){return _vm.$emit('abort')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Back to login'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.message === 'send-success')?_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'If this account exists, a password reset message has been sent to its email address. If you do not receive it, verify your email address and/or Login, check your spam/junk folders or ask your local administration for help.'))+\"\\n\\t\")]):(_vm.message === 'send-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Couldn\\'t send reset email. Please contact your administrator.'))+\"\\n\\t\")]):(_vm.message === 'reset-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Password cannot be changed. Please contact your administrator.'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=759a0fdd&scoped=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"759a0fdd\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UpdatePassword.vue?vue&type=template&id=2c0ecaf9&scoped=true\"\nimport script from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nexport * from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nimport style0 from \"./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c0ecaf9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('fieldset',[_c('p',[_c('label',{staticClass:\"infield\",attrs:{\"for\":\"password\"}},[_vm._v(_vm._s(_vm.t('core', 'New password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],attrs:{\"id\":\"password\",\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"new-password\",\"autocapitalize\":\"none\",\"spellcheck\":\"false\",\"required\":\"\",\"placeholder\":_vm.t('core', 'New password')},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing)return;_vm.password=$event.target.value}}})]),_vm._v(\" \"),(_vm.encrypted)?_c('div',{staticClass:\"update\"},[_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your files are encrypted. There will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.proceed),expression:\"proceed\"}],staticClass:\"checkbox\",attrs:{\"id\":\"encrypted-continue\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.proceed)?_vm._i(_vm.proceed,null)>-1:(_vm.proceed)},on:{\"change\":function($event){var $$a=_vm.proceed,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.proceed=$$a.concat([$$v]))}else{$$i>-1&&(_vm.proceed=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.proceed=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"encrypted-continue\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'I know what I\\'m doing'))+\"\\n\\t\\t\\t\")])]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password'),\"value-loading\":_vm.t('core', 'Resetting password')}}),_vm._v(\" \"),(_vm.error && _vm.message)?_c('p',{class:{ warning: _vm.error }},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\\t\")]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\n/**\n *\n * @param {string} url the URL to check\n * @return {boolean}\n */\nfunction isRelativeUrl(url) {\n\treturn !url.startsWith('https://') && !url.startsWith('http://')\n}\n\n/**\n * @param {string} url The URL to check\n * @return {boolean} true if the URL points to this nextcloud instance\n */\nfunction isNextcloudUrl(url) {\n\tconst nextcloudBaseUrl = window.location.protocol + '//' + window.location.host + getRootUrl()\n\t// if the URL is absolute and starts with the baseUrl+rootUrl\n\t// OR if the URL is relative and starts with rootUrl\n\treturn url.startsWith(nextcloudBaseUrl)\n\t\t|| (isRelativeUrl(url) && url.startsWith(getRootUrl()))\n}\n\n/**\n * Check if a user was logged in but is now logged-out.\n * If this is the case then the user will be forwarded to the login page.\n *\n * @return {Promise}\n */\nasync function checkLoginStatus() {\n\t// skip if no logged in user\n\tif (getCurrentUser() === null) {\n\t\treturn\n\t}\n\n\t// skip if already running\n\tif (checkLoginStatus.running === true) {\n\t\treturn\n\t}\n\n\t// only run one request in parallel\n\tcheckLoginStatus.running = true\n\n\ttry {\n\t\t// We need to check this as a 401 in the first place could also come from other reasons\n\t\tconst { status } = await window.fetch(generateUrl('/apps/files'))\n\t\tif (status === 401) {\n\t\t\tlogger.warn('User session was terminated, forwarding to login page.')\n\t\t\tawait wipeBrowserStorages()\n\t\t\twindow.location = generateUrl('/login?redirect_url={url}', {\n\t\t\t\turl: window.location.pathname + window.location.search + window.location.hash,\n\t\t\t})\n\t\t}\n\t} catch (error) {\n\t\tlogger.warn('Could not check login-state', { error })\n\t} finally {\n\t\tdelete checkLoginStatus.running\n\t}\n}\n\n/**\n * Clear all Browser storages connected to current origin.\n *\n * @return {Promise}\n */\nexport async function wipeBrowserStorages() {\n\ttry {\n\t\twindow.localStorage.clear()\n\t\twindow.sessionStorage.clear()\n\t\tconst indexedDBList = await window.indexedDB.databases()\n\t\tfor (const indexedDB of indexedDBList) {\n\t\t\tawait window.indexedDB.deleteDatabase(indexedDB.name)\n\t\t}\n\t\tlogger.debug('Browser storages cleared')\n\t} catch (error) {\n\t\tlogger.error('Could not clear browser storages', { error })\n\t}\n}\n\n/**\n * Intercept XMLHttpRequest and fetch API calls to add X-Requested-With header\n *\n * This is also done in @nextcloud/axios but not all requests pass through that\n */\nexport function interceptRequests() {\n\tXMLHttpRequest.prototype.open = (function(open) {\n\t\treturn function(method, url) {\n\t\t\topen.apply(this, arguments)\n\t\t\tif (isNextcloudUrl(url)) {\n\t\t\t\tif (!this.getResponseHeader('X-Requested-With')) {\n\t\t\t\t\tthis.setRequestHeader('X-Requested-With', 'XMLHttpRequest')\n\t\t\t\t}\n\t\t\t\tthis.addEventListener('loadend', function() {\n\t\t\t\t\tif (this.status === 401) {\n\t\t\t\t\t\tcheckLoginStatus()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})(XMLHttpRequest.prototype.open)\n\n\twindow.fetch = (function(fetch) {\n\t\treturn async (resource, options) => {\n\t\t\t// fetch allows the `input` to be either a Request object or any stringifyable value\n\t\t\tif (!isNextcloudUrl(resource.url ?? resource.toString())) {\n\t\t\t\treturn await fetch(resource, options)\n\t\t\t}\n\t\t\tif (!options) {\n\t\t\t\toptions = {}\n\t\t\t}\n\t\t\tif (!options.headers) {\n\t\t\t\toptions.headers = new Headers()\n\t\t\t}\n\n\t\t\tif (options.headers instanceof Headers && !options.headers.has('X-Requested-With')) {\n\t\t\t\toptions.headers.append('X-Requested-With', 'XMLHttpRequest')\n\t\t\t} else if (options.headers instanceof Object && !options.headers['X-Requested-With']) {\n\t\t\t\toptions.headers['X-Requested-With'] = 'XMLHttpRequest'\n\t\t\t}\n\n\t\t\tconst response = await fetch(resource, options)\n\t\t\tif (response.status === 401) {\n\t\t\t\tcheckLoginStatus()\n\t\t\t}\n\t\t\treturn response\n\t\t}\n\t})(window.fetch)\n}\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=518c0816&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"518c0816\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"guest-box login-box\"},[(!_vm.hideLoginForm || _vm.directLogin)?[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.passwordlessLogin && !_vm.resetPassword && _vm.resetPasswordTarget === '')?_c('div',{staticClass:\"login-box__wrapper\"},[_c('LoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"direct-login\":_vm.directLogin,\"messages\":_vm.messages,\"errors\":_vm.errors,\"throttle-delay\":_vm.throttleDelay,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"rememberme-allowed\":_vm.remembermeAllowed,\"email-states\":_vm.emailStates},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),(_vm.hasPasswordless)?_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.passwordlessLogin = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.canResetPassword && _vm.resetPasswordLink !== '')?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"href\":_vm.resetPasswordLink,\"variant\":\"tertiary-no-background\",\"wide\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):(_vm.canResetPassword && !_vm.resetPassword)?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.resetPassword = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):(!_vm.loading && _vm.passwordlessLogin)?_c('div',{key:\"reset-pw-less\",staticClass:\"login-additional login-box__wrapper\"},[_c('PasswordLessLoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"is-https\":_vm.isHttps,\"is-localhost\":_vm.isLocalhost},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Back to login form'),\"wide\":true},on:{\"click\":function($event){_vm.passwordlessLogin = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Back'))+\"\\n\\t\\t\\t\\t\")])],1):(!_vm.loading && _vm.canResetPassword)?_c('div',{key:\"reset-can-reset\",staticClass:\"login-additional\"},[_c('div',{staticClass:\"lost-password-container\"},[(_vm.resetPassword)?_c('ResetPassword',{attrs:{\"username\":_vm.user,\"reset-password-link\":_vm.resetPasswordLink},on:{\"update:username\":function($event){_vm.user=$event},\"abort\":function($event){_vm.resetPassword = false}}}):_vm._e()],1)]):(_vm.resetPasswordTarget !== '')?_c('div',[_c('UpdatePassword',{attrs:{\"username\":_vm.user,\"reset-password-target\":_vm.resetPasswordTarget},on:{\"update:username\":function($event){_vm.user=$event},\"done\":_vm.passwordResetFinished}})],1):_vm._e()])]:[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('NcNoteCard',{attrs:{\"type\":\"info\",\"title\":_vm.t('core', 'Login form is disabled.')}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'The Nextcloud login form is disabled. Use another login option if available or contact your administration.'))+\"\\n\\t\\t\\t\")])],1)],_vm._v(\" \"),_c('div',{staticClass:\"login-box__alternative-logins\",attrs:{\"id\":\"alternative-logins\"}},_vm._l((_vm.alternativeLogins),function(alternativeLogin,index){return _c('NcButton',{key:index,class:[alternativeLogin.class],attrs:{\"variant\":\"secondary\",\"wide\":true,\"role\":\"link\",\"href\":alternativeLogin.href}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(alternativeLogin.name)+\"\\n\\t\\t\")])}),1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst isAdmin = !!window._oc_isadmin\n\n/**\n * Returns whether the current user is an administrator\n *\n * @return {boolean} true if the user is an admin, false otherwise\n * @since 9.0.0\n */\nexport const isUserAdmin = () => isAdmin\n","/*!\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @deprecated 16.0.0 Use OCP.AppConfig instead\n */\nexport const appConfig = window.oc_appconfig || {}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\nlet dynamicSlideToggleEnabled = false\n\nconst Apps = {\n\tenableDynamicSlideToggle() {\n\t\tdynamicSlideToggleEnabled = true\n\t},\n}\n\n/**\n * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings\n *\n * @param {object} [$el] sidebar element to show, defaults to $('#app-sidebar')\n */\nApps.showAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.removeClass('disappear').show()\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Shows the #app-sidebar and removes .with-app-sidebar from subsequent\n * siblings\n *\n * @param {object} [$el] sidebar element to hide, defaults to $('#app-sidebar')\n */\nApps.hideAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.hide().addClass('disappear')\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Provides a way to slide down a target area through a button and slide it\n * up if the user clicks somewhere else. Used for the news app settings and\n * add new field.\n *\n * Usage:\n * \n *
I'm sliding up
\n */\nexport function registerAppsSlideToggle() {\n\tlet buttons = $('[data-apps-slide-toggle]')\n\n\tif (buttons.length === 0) {\n\t\t$('#app-navigation').addClass('without-app-settings')\n\t}\n\n\t$(document).click(function(event) {\n\t\tif (dynamicSlideToggleEnabled) {\n\t\t\tbuttons = $('[data-apps-slide-toggle]')\n\t\t}\n\n\t\tbuttons.each(function(index, button) {\n\t\t\tconst areaSelector = $(button).data('apps-slide-toggle')\n\t\t\tconst area = $(areaSelector)\n\n\t\t\t/**\n\t\t\t *\n\t\t\t */\n\t\t\tfunction hideArea() {\n\t\t\t\tarea.slideUp(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('hide'))\n\t\t\t\t})\n\t\t\t\tarea.removeClass('opened')\n\t\t\t\t$(button).removeClass('opened')\n\t\t\t\t$(button).attr('aria-expanded', 'false')\n\t\t\t}\n\n\t\t\t/**\n\t\t\t *\n\t\t\t */\n\t\t\tfunction showArea() {\n\t\t\t\tarea.slideDown(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('show'))\n\t\t\t\t})\n\t\t\t\tarea.addClass('opened')\n\t\t\t\t$(button).addClass('opened')\n\t\t\t\t$(button).attr('aria-expanded', 'true')\n\t\t\t\tconst input = $(areaSelector + ' [autofocus]')\n\t\t\t\tif (input.length === 1) {\n\t\t\t\t\tinput.focus()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// do nothing if the area is animated\n\t\t\tif (!area.is(':animated')) {\n\t\t\t\t// button toggles the area\n\t\t\t\tif ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) {\n\t\t\t\t\tif (area.is(':visible')) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshowArea()\n\t\t\t\t\t}\n\n\t\t\t\t\t// all other areas that have not been clicked but are open\n\t\t\t\t\t// should be slid up\n\t\t\t\t} else {\n\t\t\t\t\tconst closest = $(event.target).closest(areaSelector)\n\t\t\t\t\tif (area.is(':visible') && closest[0] !== area[0]) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t})\n}\n\nexport default Apps\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst appswebroots = (window._oc_appswebroots !== undefined) ? window._oc_appswebroots : false\n\nexport default appswebroots\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { dav } from 'davclient.js'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\nconst methodMap = {\n\tcreate: 'POST',\n\tupdate: 'PROPPATCH',\n\tpatch: 'PROPPATCH',\n\tdelete: 'DELETE',\n\tread: 'PROPFIND',\n}\n\n/**\n * Throw an error when a URL is needed, and none is supplied.\n */\nfunction urlError() {\n\tthrow new Error('A \"url\" property or function must be specified')\n}\n\n/**\n * Convert a single propfind result to JSON\n *\n * @param {object} result\n * @param {object} davProperties properties mapping\n */\nfunction parsePropFindResult(result, davProperties) {\n\tif (_.isArray(result)) {\n\t\treturn _.map(result, function(subResult) {\n\t\t\treturn parsePropFindResult(subResult, davProperties)\n\t\t})\n\t}\n\tconst props = {\n\t\thref: result.href,\n\t}\n\n\t_.each(result.propStat, function(propStat) {\n\t\tif (propStat.status !== 'HTTP/1.1 200 OK') {\n\t\t\treturn\n\t\t}\n\n\t\tfor (const key in propStat.properties) {\n\t\t\tlet propKey = key\n\t\t\tif (key in davProperties) {\n\t\t\t\tpropKey = davProperties[key]\n\t\t\t}\n\t\t\tprops[propKey] = propStat.properties[key]\n\t\t}\n\t})\n\n\tif (!props.id) {\n\t\t// parse id from href\n\t\tprops.id = parseIdFromLocation(props.href)\n\t}\n\n\treturn props\n}\n\n/**\n * Parse ID from location\n *\n * @param {string} url url\n * @return {string} id\n */\nfunction parseIdFromLocation(url) {\n\tconst queryPos = url.indexOf('?')\n\tif (queryPos > 0) {\n\t\turl = url.substr(0, queryPos)\n\t}\n\n\tconst parts = url.split('/')\n\tlet result\n\tdo {\n\t\tresult = parts[parts.length - 1]\n\t\tparts.pop()\n\t\t// note: first result can be empty when there is a trailing slash,\n\t\t// so we take the part before that\n\t} while (!result && parts.length > 0)\n\n\treturn result\n}\n\n/**\n *\n * @param {number} status\n */\nfunction isSuccessStatus(status) {\n\treturn status >= 200 && status <= 299\n}\n\n/**\n *\n * @param attrs\n * @param davProperties\n */\nfunction convertModelAttributesToDavProperties(attrs, davProperties) {\n\tconst props = {}\n\tlet key\n\tfor (key in attrs) {\n\t\tlet changedProp = davProperties[key]\n\t\tlet value = attrs[key]\n\t\tif (!changedProp) {\n\t\t\tlogger.warn('No matching DAV property for property \"' + key)\n\t\t\tchangedProp = key\n\t\t}\n\t\tif (_.isBoolean(value) || _.isNumber(value)) {\n\t\t\t// convert to string\n\t\t\tvalue = '' + value\n\t\t}\n\t\tprops[changedProp] = value\n\t}\n\treturn props\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callPropFind(client, options, model, headers) {\n\treturn client.propFind(\n\t\toptions.url,\n\t\t_.values(options.davProperties) || [],\n\t\toptions.depth,\n\t\theaders,\n\t).then(function(response) {\n\t\tif (isSuccessStatus(response.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\tconst propsMapping = _.invert(options.davProperties)\n\t\t\t\tconst results = parsePropFindResult(response.body, propsMapping)\n\t\t\t\tif (options.depth > 0) {\n\t\t\t\t\t// discard root entry\n\t\t\t\t\tresults.shift()\n\t\t\t\t}\n\n\t\t\t\toptions.success(results)\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(response)\n\t\t}\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callPropPatch(client, options, model, headers) {\n\treturn client.propPatch(\n\t\toptions.url,\n\t\tconvertModelAttributesToDavProperties(model.changed, options.davProperties),\n\t\theaders,\n\t).then(function(result) {\n\t\tif (isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return the updated model\n\t\t\t\toptions.success(model.toJSON())\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(result)\n\t\t}\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callMkCol(client, options, model, headers) {\n\t// call MKCOL without data, followed by PROPPATCH\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\tnull,\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tcallPropPatch(client, options, model, headers)\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callMethod(client, options, model, headers) {\n\theaders['Content-Type'] = 'application/json'\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\toptions.data,\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tif (_.isFunction(options.success)) {\n\t\t\tif (options.type === 'PUT' || options.type === 'POST' || options.type === 'MKCOL') {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return anything\n\t\t\t\tconst responseJson = result.body || model.toJSON()\n\t\t\t\tconst locationHeader = result.xhr.getResponseHeader('Content-Location')\n\t\t\t\tif (options.type === 'POST' && locationHeader) {\n\t\t\t\t\tresponseJson.id = parseIdFromLocation(locationHeader)\n\t\t\t\t}\n\t\t\t\toptions.success(responseJson)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// if multi-status, parse\n\t\t\tif (result.status === 207) {\n\t\t\t\tconst propsMapping = _.invert(options.davProperties)\n\t\t\t\toptions.success(parsePropFindResult(result.body, propsMapping))\n\t\t\t} else {\n\t\t\t\toptions.success(result.body)\n\t\t\t}\n\t\t}\n\t})\n}\n\n/**\n *\n * @param options\n * @param model\n */\nexport function davCall(options, model) {\n\tconst client = new dav.Client({\n\t\tbaseUrl: options.url,\n\t\txmlNamespaces: _.extend({\n\t\t\t'DAV:': 'd',\n\t\t\t'http://owncloud.org/ns': 'oc',\n\t\t}, options.xmlNamespaces || {}),\n\t})\n\tclient.resolveUrl = function() {\n\t\treturn options.url\n\t}\n\tconst headers = _.extend({\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\trequesttoken: OC.requestToken,\n\t}, options.headers)\n\tif (options.type === 'PROPFIND') {\n\t\treturn callPropFind(client, options, model, headers)\n\t} else if (options.type === 'PROPPATCH') {\n\t\treturn callPropPatch(client, options, model, headers)\n\t} else if (options.type === 'MKCOL') {\n\t\treturn callMkCol(client, options, model, headers)\n\t} else {\n\t\treturn callMethod(client, options, model, headers)\n\t}\n}\n\n/**\n * DAV transport\n *\n * @param Backbone\n */\nexport function davSync(Backbone) {\n\treturn (method, model, options) => {\n\t\tconst params = { type: methodMap[method] || method }\n\t\tconst isCollection = (model instanceof Backbone.Collection)\n\n\t\tif (method === 'update') {\n\t\t// if a model has an inner collection, it must define an\n\t\t// attribute \"hasInnerCollection\" that evaluates to true\n\t\t\tif (model.hasInnerCollection) {\n\t\t\t// if the model itself is a Webdav collection, use MKCOL\n\t\t\t\tparams.type = 'MKCOL'\n\t\t\t} else if (model.usePUT || (model.collection && model.collection.usePUT)) {\n\t\t\t// use PUT instead of PROPPATCH\n\t\t\t\tparams.type = 'PUT'\n\t\t\t}\n\t\t}\n\n\t\t// Ensure that we have a URL.\n\t\tif (!options.url) {\n\t\t\tparams.url = _.result(model, 'url') || urlError()\n\t\t}\n\n\t\t// Ensure that we have the appropriate request data.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tif (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n\t\t\tparams.data = JSON.stringify(options.attrs || model.toJSON(options))\n\t\t}\n\n\t\t// Don't process data on a non-GET request.\n\t\tif (params.type !== 'PROPFIND') {\n\t\t\tparams.processData = false\n\t\t}\n\n\t\tif (params.type === 'PROPFIND' || params.type === 'PROPPATCH') {\n\t\t\tlet davProperties = model.davProperties\n\t\t\tif (!davProperties && model.model) {\n\t\t\t// use dav properties from model in case of collection\n\t\t\t\tdavProperties = model.model.prototype.davProperties\n\t\t\t}\n\t\t\tif (davProperties) {\n\t\t\t\tif (_.isFunction(davProperties)) {\n\t\t\t\t\tparams.davProperties = davProperties.call(model)\n\t\t\t\t} else {\n\t\t\t\t\tparams.davProperties = davProperties\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparams.davProperties = _.extend(params.davProperties || {}, options.davProperties)\n\n\t\t\tif (_.isUndefined(options.depth)) {\n\t\t\t\tif (isCollection) {\n\t\t\t\t\toptions.depth = 1\n\t\t\t\t} else {\n\t\t\t\t\toptions.depth = 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Pass along `textStatus` and `errorThrown` from jQuery.\n\t\tconst error = options.error\n\t\toptions.error = function(xhr, textStatus, errorThrown) {\n\t\t\toptions.textStatus = textStatus\n\t\t\toptions.errorThrown = errorThrown\n\t\t\tif (error) {\n\t\t\t\terror.call(options.context, xhr, textStatus, errorThrown)\n\t\t\t}\n\t\t}\n\n\t\t// Make the request, allowing the user to override any Ajax options.\n\t\tconst xhr = options.xhr = Backbone.davCall(_.extend(params, options), model)\n\t\tmodel.trigger('request', model, xhr, options)\n\t\treturn xhr\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport VendorBackbone from 'backbone'\nimport { davCall, davSync } from './backbone-webdav.js'\n\nconst Backbone = VendorBackbone.noConflict()\n\n// Patch Backbone for DAV\nObject.assign(Backbone, {\n\tdavCall,\n\tdavSync: davSync(Backbone),\n})\n\nexport default Backbone\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst config = window._oc_config || {}\n\nexport default config\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\n/**\n *\n */\nexport function getCurrentUser() {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst base = window._oc_debug\n\nexport const debug = base\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport IconMove from '@mdi/svg/svg/folder-move.svg?raw'\nimport IconCopy from '@mdi/svg/svg/folder-multiple-outline.svg?raw'\nimport { DialogBuilder, FilePickerType, getFilePickerBuilder } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport $ from 'jquery'\nimport { basename } from 'path'\nimport { defineAsyncComponent } from 'vue'\nimport logger from '../logger.js'\nimport OC from './index.js'\n\n/**\n * this class to ease the usage of jquery dialogs\n */\nconst Dialogs = {\n\t// dialog button types\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tYES_NO_BUTTONS: 70,\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tOK_BUTTONS: 71,\n\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CHOOSE: 1,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_MOVE: 2,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY: 3,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY_MOVE: 4,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CUSTOM: 5,\n\n\t/**\n\t * displays alert dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\talert: function(text, title, callback, modal) {\n\t\tthis.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'alert',\n\t\t\tDialogs.OK_BUTTON,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\n\t/**\n\t * displays info dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tinfo: function(text, title, callback, modal) {\n\t\tthis.message(text, title, 'info', Dialogs.OK_BUTTON, callback, modal)\n\t},\n\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirm: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {(number|{type: number, confirm: string, cancel: string, confirmClasses: string})} buttons text content of buttons\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmDestructive: function(text, title, buttons = Dialogs.OK_BUTTONS, callback = () => {}) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(text)\n\t\t\t.setButtons(buttons === Dialogs.OK_BUTTONS\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: Dialogs._getLegacyButtons(buttons, callback))\n\t\t\t.build()\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmHtml: function(text, title, callback) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText('')\n\t\t\t.setButtons([\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'No'),\n\t\t\t\t\tcallback: () => {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t])\n\t\t\t.build()\n\t\t\t.setHTML(text)\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays prompt dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} name name of the input field\n\t * @param {boolean} password whether the input should be a password input\n\t * @return {Promise}\n\t *\n\t * @deprecated Use NcDialog from `@nextcloud/vue` instead\n\t */\n\tprompt: function(text, title, callback, modal, name, password) {\n\t\treturn new Promise((resolve) => {\n\t\t\tspawnDialog(\n\t\t\t\tdefineAsyncComponent(() => import('../components/LegacyDialogPrompt.vue')),\n\t\t\t\t{\n\t\t\t\t\ttext,\n\t\t\t\t\tname: title,\n\t\t\t\t\tcallback,\n\t\t\t\t\tinputName: name,\n\t\t\t\t\tisPassword: !!password,\n\t\t\t\t},\n\t\t\t\t(...args) => {\n\t\t\t\t\tcallback(...args)\n\t\t\t\t\tresolve()\n\t\t\t\t},\n\t\t\t)\n\t\t})\n\t},\n\n\t/**\n\t * Legacy wrapper to the new Vue based filepicker from `@nextcloud/dialogs`\n\t *\n\t * Prefer to use the Vue filepicker directly instead.\n\t *\n\t * In order to pick several types of mime types they need to be passed as an\n\t * array of strings.\n\t *\n\t * When no mime type filter is given only files can be selected. In order to\n\t * be able to select both files and folders \"['*', 'httpd/unix-directory']\"\n\t * should be used instead.\n\t *\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses Choose\n\t * @param {boolean} [multiselect] whether it should be possible to select multiple files\n\t * @param {string[]} [mimetype] mimetype to filter by - directories will always be included\n\t * @param {boolean} [_modal] do not use\n\t * @param {string} [type] Type of file picker : Choose, copy, move, copy and move\n\t * @param {string} [path] path to the folder that the the file can be picket from\n\t * @param {object} [options] additonal options that need to be set\n\t * @param {Function} [options.filter] filter function for advanced filtering\n\t * @param {boolean} [options.allowDirectoryChooser] Allow to select directories\n\t * @deprecated since 27.1.0 use the filepicker from `@nextcloud/dialogs` instead\n\t */\n\t// eslint-disable-next-line no-unused-vars\n\tfilepicker(title, callback, multiselect = false, mimetype = undefined, _modal = undefined, type = FilePickerType.Choose, path = undefined, options = undefined) {\n\t\t/**\n\t\t * Create legacy callback wrapper to support old filepicker syntax\n\t\t *\n\t\t * @param fn The original callback\n\t\t * @param type The file picker type which was used to pick the file(s)\n\t\t */\n\t\tconst legacyCallback = (fn, type) => {\n\t\t\tconst getPath = (node) => {\n\t\t\t\tconst root = node?.root || ''\n\t\t\t\tlet path = node?.path || ''\n\t\t\t\t// TODO: Fix this in @nextcloud/files\n\t\t\t\tif (path.startsWith(root)) {\n\t\t\t\t\tpath = path.slice(root.length) || '/'\n\t\t\t\t}\n\t\t\t\treturn path\n\t\t\t}\n\n\t\t\tif (multiselect) {\n\t\t\t\treturn (nodes) => fn(nodes.map(getPath), type)\n\t\t\t} else {\n\t\t\t\treturn (nodes) => fn(getPath(nodes[0]), type)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Coverting a Node into a legacy file info to support the OC.dialogs.filepicker filter function\n\t\t *\n\t\t * @param node The node to convert\n\t\t */\n\t\tconst nodeToLegacyFile = (node) => ({\n\t\t\tid: node.fileid || null,\n\t\t\tpath: node.path,\n\t\t\tmimetype: node.mime || null,\n\t\t\tmtime: node.mtime?.getTime() || null,\n\t\t\tpermissions: node.permissions,\n\t\t\tname: node.attributes?.displayName || node.basename,\n\t\t\tetag: node.attributes?.etag || null,\n\t\t\thasPreview: node.attributes?.hasPreview || null,\n\t\t\tmountType: node.attributes?.mountType || null,\n\t\t\tquotaAvailableBytes: node.attributes?.quotaAvailableBytes || null,\n\t\t\ticon: null,\n\t\t\tsharePermissions: null,\n\t\t})\n\n\t\tconst builder = getFilePickerBuilder(title)\n\n\t\t// Setup buttons\n\t\tif (type === this.FILEPICKER_TYPE_CUSTOM) {\n\t\t\t(options.buttons || []).forEach((button) => {\n\t\t\t\tbuilder.addButton({\n\t\t\t\t\tcallback: legacyCallback(callback, button.type),\n\t\t\t\t\tlabel: button.text,\n\t\t\t\t\tvariant: button.defaultButton ? 'primary' : 'secondary',\n\t\t\t\t})\n\t\t\t})\n\t\t} else {\n\t\t\tbuilder.setButtonFactory((nodes, path) => {\n\t\t\t\tconst buttons = []\n\t\t\t\tconst [node] = nodes\n\t\t\t\tconst target = node?.displayname || node?.basename || basename(path)\n\n\t\t\t\tif (type === FilePickerType.Choose) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Choose),\n\t\t\t\t\t\tlabel: node && !this.multiSelect ? t('core', 'Choose {file}', { file: target }) : t('core', 'Choose'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.CopyMove || type === FilePickerType.Copy) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Copy),\n\t\t\t\t\t\tlabel: target ? t('core', 'Copy to {target}', { target }) : t('core', 'Copy'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\ticon: IconCopy,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.Move || type === FilePickerType.CopyMove) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Move),\n\t\t\t\t\t\tlabel: target ? t('core', 'Move to {target}', { target }) : t('core', 'Move'),\n\t\t\t\t\t\tvariant: type === FilePickerType.Move ? 'primary' : 'secondary',\n\t\t\t\t\t\ticon: IconMove,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn buttons\n\t\t\t})\n\t\t}\n\n\t\tif (mimetype) {\n\t\t\tbuilder.setMimeTypeFilter(typeof mimetype === 'string' ? [mimetype] : (mimetype || []))\n\t\t}\n\t\tif (typeof options?.filter === 'function') {\n\t\t\tbuilder.setFilter((node) => options.filter(nodeToLegacyFile(node)))\n\t\t}\n\t\tbuilder.allowDirectories(options?.allowDirectoryChooser === true || mimetype?.includes('httpd/unix-directory') || false)\n\t\t\t.setMultiSelect(multiselect)\n\t\t\t.startAt(path)\n\t\t\t.build()\n\t\t\t.pick()\n\t},\n\n\t/**\n\t * Displays raw dialog\n\t * You better use a wrapper instead ...\n\t *\n\t * @param content\n\t * @param title\n\t * @param dialogType\n\t * @param buttons\n\t * @param callback\n\t * @param modal\n\t * @param allowHtml\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tmessage: function(content, title, dialogType, buttons, callback = () => {}, modal, allowHtml) {\n\t\tconst builder = (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(allowHtml ? '' : content)\n\t\t\t.setButtons(Dialogs._getLegacyButtons(buttons, callback))\n\n\t\tswitch (dialogType) {\n\t\t\tcase 'alert':\n\t\t\t\tbuilder.setSeverity('warning')\n\t\t\t\tbreak\n\t\t\tcase 'notice':\n\t\t\t\tbuilder.setSeverity('info')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst dialog = builder.build()\n\n\t\tif (allowHtml) {\n\t\t\tdialog.setHTML(content)\n\t\t}\n\n\t\treturn dialog.show().then(() => {\n\t\t\tif (!callback._clicked) {\n\t\t\t\tcallback(false)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Helper for legacy API\n\t *\n\t * @param buttons\n\t * @param callback\n\t * @deprecated\n\t */\n\t_getLegacyButtons(buttons, callback) {\n\t\tconst buttonList = []\n\n\t\tswitch (typeof buttons === 'object' ? buttons.type : buttons) {\n\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.cancel ?? t('core', 'No'),\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase Dialogs.OK_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'OK'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error('Invalid call to OC.dialogs')\n\t\t\t\tbreak\n\t\t}\n\t\treturn buttonList\n\t},\n\n\t_fileexistsshown: false,\n\t/**\n\t * Displays file exists dialog\n\t *\n\t * @param {object} data upload object\n\t * @param {object} original file with name, size and mtime\n\t * @param {object} replacement file with name, size and mtime\n\t * @param {object} controller with onCancel, onSkip, onReplace and onRename methods\n\t * @return {Promise} jquery promise that resolves after the dialog template was loaded\n\t *\n\t * @deprecated 29.0.0 Use openConflictPicker from the @nextcloud/upload package instead\n\t */\n\tfileexists: function(data, original, replacement, controller) {\n\t\tconst self = this\n\t\tconst dialogDeferred = new $.Deferred()\n\n\t\tconst getCroppedPreview = function(file) {\n\t\t\tconst deferred = new $.Deferred()\n\t\t\t// Only process image files.\n\t\t\tconst type = file.type && file.type.split('/').shift()\n\t\t\tif (window.FileReader && type === 'image') {\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload = function(e) {\n\t\t\t\t\tconst blob = new Blob([e.target.result])\n\t\t\t\t\twindow.URL = window.URL || window.webkitURL\n\t\t\t\t\tconst originalUrl = window.URL.createObjectURL(blob)\n\t\t\t\t\tconst image = new Image()\n\t\t\t\t\timage.src = originalUrl\n\t\t\t\t\timage.onload = function() {\n\t\t\t\t\t\tconst url = crop(image)\n\t\t\t\t\t\tdeferred.resolve(url)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treader.readAsArrayBuffer(file)\n\t\t\t} else {\n\t\t\t\tdeferred.reject()\n\t\t\t}\n\t\t\treturn deferred\n\t\t}\n\n\t\t/**\n\t\t * @param img\n\t\t */\n\t\tfunction crop(img) {\n\t\t\tconst canvas = document.createElement('canvas')\n\t\t\tconst targetSize = 96\n\t\t\tconst width = img.width\n\t\t\tconst height = img.height\n\t\t\tlet x\n\t\t\tlet y\n\n\t\t\t// Calculate the width and height, constraining the proportions\n\t\t\tif (width > height) {\n\t\t\t\ty = 0\n\t\t\t\tx = (width - height) / 2\n\t\t\t} else {\n\t\t\t\ty = (height - width) / 2\n\t\t\t\tx = 0\n\t\t\t}\n\t\t\tconst size = Math.min(width, height)\n\n\t\t\t// Set canvas size to the cropped area\n\t\t\tcanvas.width = size\n\t\t\tcanvas.height = size\n\t\t\tconst ctx = canvas.getContext('2d')\n\t\t\tctx.drawImage(img, x, y, size, size, 0, 0, size, size)\n\n\t\t\t// Resize the canvas to match the destination (right size uses 96px)\n\t\t\tresampleHermite(canvas, size, size, targetSize, targetSize)\n\n\t\t\treturn canvas.toDataURL('image/png', 0.7)\n\t\t}\n\n\t\t/**\n\t\t * Fast image resize/resample using Hermite filter with JavaScript.\n\t\t *\n\t\t * @author ViliusL\n\t\t *\n\t\t * @param {*} canvas\n\t\t * @param {number} W\n\t\t * @param {number} H\n\t\t * @param {number} W2\n\t\t * @param {number} H2\n\t\t */\n\t\tfunction resampleHermite(canvas, W, H, W2, H2) {\n\t\t\tW2 = Math.round(W2)\n\t\t\tH2 = Math.round(H2)\n\t\t\tconst img = canvas.getContext('2d').getImageData(0, 0, W, H)\n\t\t\tconst img2 = canvas.getContext('2d').getImageData(0, 0, W2, H2)\n\t\t\tconst data = img.data\n\t\t\tconst data2 = img2.data\n\t\t\tconst ratio_w = W / W2\n\t\t\tconst ratio_h = H / H2\n\t\t\tconst ratio_w_half = Math.ceil(ratio_w / 2)\n\t\t\tconst ratio_h_half = Math.ceil(ratio_h / 2)\n\n\t\t\tfor (let j = 0; j < H2; j++) {\n\t\t\t\tfor (let i = 0; i < W2; i++) {\n\t\t\t\t\tconst x2 = (i + j * W2) * 4\n\t\t\t\t\tlet weight = 0\n\t\t\t\t\tlet weights = 0\n\t\t\t\t\tlet weights_alpha = 0\n\t\t\t\t\tlet gx_r = 0\n\t\t\t\t\tlet gx_g = 0\n\t\t\t\t\tlet gx_b = 0\n\t\t\t\t\tlet gx_a = 0\n\t\t\t\t\tconst center_y = (j + 0.5) * ratio_h\n\t\t\t\t\tfor (let yy = Math.floor(j * ratio_h); yy < (j + 1) * ratio_h; yy++) {\n\t\t\t\t\t\tconst dy = Math.abs(center_y - (yy + 0.5)) / ratio_h_half\n\t\t\t\t\t\tconst center_x = (i + 0.5) * ratio_w\n\t\t\t\t\t\tconst w0 = dy * dy // pre-calc part of w\n\t\t\t\t\t\tfor (let xx = Math.floor(i * ratio_w); xx < (i + 1) * ratio_w; xx++) {\n\t\t\t\t\t\t\tlet dx = Math.abs(center_x - (xx + 0.5)) / ratio_w_half\n\t\t\t\t\t\t\tconst w = Math.sqrt(w0 + dx * dx)\n\t\t\t\t\t\t\tif (w >= -1 && w <= 1) {\n\t\t\t\t\t\t\t\t// hermite filter\n\t\t\t\t\t\t\t\tweight = 2 * w * w * w - 3 * w * w + 1\n\t\t\t\t\t\t\t\tif (weight > 0) {\n\t\t\t\t\t\t\t\t\tdx = 4 * (xx + yy * W)\n\t\t\t\t\t\t\t\t\t// alpha\n\t\t\t\t\t\t\t\t\tgx_a += weight * data[dx + 3]\n\t\t\t\t\t\t\t\t\tweights_alpha += weight\n\t\t\t\t\t\t\t\t\t// colors\n\t\t\t\t\t\t\t\t\tif (data[dx + 3] < 255) {\n\t\t\t\t\t\t\t\t\t\tweight = weight * data[dx + 3] / 250\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tgx_r += weight * data[dx]\n\t\t\t\t\t\t\t\t\tgx_g += weight * data[dx + 1]\n\t\t\t\t\t\t\t\t\tgx_b += weight * data[dx + 2]\n\t\t\t\t\t\t\t\t\tweights += weight\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata2[x2] = gx_r / weights\n\t\t\t\t\tdata2[x2 + 1] = gx_g / weights\n\t\t\t\t\tdata2[x2 + 2] = gx_b / weights\n\t\t\t\t\tdata2[x2 + 3] = gx_a / weights_alpha\n\t\t\t\t}\n\t\t\t}\n\t\t\tcanvas.getContext('2d').clearRect(0, 0, Math.max(W, W2), Math.max(H, H2))\n\t\t\tcanvas.width = W2\n\t\t\tcanvas.height = H2\n\t\t\tcanvas.getContext('2d').putImageData(img2, 0, 0)\n\t\t}\n\n\t\tconst addConflict = function($conflicts, original, replacement) {\n\t\t\tconst $conflict = $conflicts.find('.template').clone().removeClass('template').addClass('conflict')\n\t\t\tconst $originalDiv = $conflict.find('.original')\n\t\t\tconst $replacementDiv = $conflict.find('.replacement')\n\n\t\t\t$conflict.data('data', data)\n\n\t\t\t$conflict.find('.filename').text(original.name)\n\t\t\t$originalDiv.find('.size').text(OC.Util.humanFileSize(original.size))\n\t\t\t$originalDiv.find('.mtime').text(OC.Util.formatDate(original.mtime))\n\t\t\t// ie sucks\n\t\t\tif (replacement.size && replacement.lastModified) {\n\t\t\t\t$replacementDiv.find('.size').text(OC.Util.humanFileSize(replacement.size))\n\t\t\t\t$replacementDiv.find('.mtime').text(OC.Util.formatDate(replacement.lastModified))\n\t\t\t}\n\t\t\tlet path = original.directory + '/' + original.name\n\t\t\tconst urlSpec = {\n\t\t\t\tfile: path,\n\t\t\t\tx: 96,\n\t\t\t\ty: 96,\n\t\t\t\tc: original.etag,\n\t\t\t\tforceIcon: 0,\n\t\t\t}\n\t\t\tlet previewpath = Files.generatePreviewUrl(urlSpec)\n\t\t\t// Escaping single quotes\n\t\t\tpreviewpath = previewpath.replace(/'/g, '%27')\n\t\t\t$originalDiv.find('.icon').css({ 'background-image': \"url('\" + previewpath + \"')\" })\n\t\t\tgetCroppedPreview(replacement).then(function(path) {\n\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t}, function() {\n\t\t\t\tpath = OC.MimeType.getIconUrl(replacement.type)\n\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t})\n\t\t\t// connect checkboxes with labels\n\t\t\tconst checkboxId = $conflicts.find('.conflict').length\n\t\t\t$originalDiv.find('input:checkbox').attr('id', 'checkbox_original_' + checkboxId)\n\t\t\t$replacementDiv.find('input:checkbox').attr('id', 'checkbox_replacement_' + checkboxId)\n\n\t\t\t$conflicts.append($conflict)\n\n\t\t\t// set more recent mtime bold\n\t\t\t// ie sucks\n\t\t\tif (replacement.lastModified > original.mtime) {\n\t\t\t\t$replacementDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else if (replacement.lastModified < original.mtime) {\n\t\t\t\t$originalDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same mtime collection?\n\t\t\t}\n\n\t\t\t// set bigger size bold\n\t\t\tif (replacement.size && replacement.size > original.size) {\n\t\t\t\t$replacementDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else if (replacement.size && replacement.size < original.size) {\n\t\t\t\t$originalDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same size collection?\n\t\t\t}\n\n\t\t\t// TODO show skip action for files with same size and mtime in bottom row\n\n\t\t\t// always keep readonly files\n\n\t\t\tif (original.status === 'readonly') {\n\t\t\t\t$originalDiv\n\t\t\t\t\t.addClass('readonly')\n\t\t\t\t\t.find('input[type=\"checkbox\"]')\n\t\t\t\t\t.prop('checked', true)\n\t\t\t\t\t.prop('disabled', true)\n\t\t\t\t$originalDiv.find('.message')\n\t\t\t\t\t.text(t('core', 'read-only'))\n\t\t\t}\n\t\t}\n\n\t\tconst dialogName = 'oc-dialog-fileexists-content'\n\t\tconst dialogId = '#' + dialogName\n\t\tif (this._fileexistsshown) {\n\t\t\t// add conflict\n\n\t\t\tconst $conflicts = $(dialogId + ' .conflicts')\n\t\t\taddConflict($conflicts, original, replacement)\n\n\t\t\tconst count = $(dialogId + ' .conflict').length\n\t\t\tconst title = n(\n\t\t\t\t'core',\n\t\t\t\t'{count} file conflict',\n\t\t\t\t'{count} file conflicts',\n\t\t\t\tcount,\n\t\t\t\t{ count },\n\t\t\t)\n\t\t\t$(dialogId).parent().children('.oc-dialog-title').text(title)\n\n\t\t\t// recalculate dimensions\n\t\t\t$(window).trigger('resize')\n\t\t\tdialogDeferred.resolve()\n\t\t} else {\n\t\t\t// create dialog\n\t\t\tthis._fileexistsshown = true\n\t\t\t$.when(this._getFileExistsTemplate()).then(function($tmpl) {\n\t\t\t\tconst title = t('core', 'One file conflict')\n\t\t\t\tconst $dlg = $tmpl.octemplate({\n\t\t\t\t\tdialog_name: dialogName,\n\t\t\t\t\ttitle,\n\t\t\t\t\ttype: 'fileexists',\n\n\t\t\t\t\tallnewfiles: t('core', 'New Files'),\n\t\t\t\t\tallexistingfiles: t('core', 'Already existing files'),\n\n\t\t\t\t\twhy: t('core', 'Which files do you want to keep?'),\n\t\t\t\t\twhat: t('core', 'If you select both versions, the copied file will have a number added to its name.'),\n\t\t\t\t})\n\t\t\t\t$('body').append($dlg)\n\n\t\t\t\tif (original && replacement) {\n\t\t\t\t\tconst $conflicts = $dlg.find('.conflicts')\n\t\t\t\t\taddConflict($conflicts, original, replacement)\n\t\t\t\t}\n\n\t\t\t\tconst buttonlist = [{\n\t\t\t\t\ttext: t('core', 'Cancel'),\n\t\t\t\t\tclasses: 'cancel',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onCancel !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onCancel(data)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\ttext: t('core', 'Continue'),\n\t\t\t\t\tclasses: 'continue',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onContinue !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onContinue($(dialogId + ' .conflict'))\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t},\n\t\t\t\t}]\n\n\t\t\t\t$(dialogId).ocdialog({\n\t\t\t\t\twidth: 500,\n\t\t\t\t\tcloseOnEscape: true,\n\t\t\t\t\tmodal: true,\n\t\t\t\t\tbuttons: buttonlist,\n\t\t\t\t\tcloseButton: null,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\tself._fileexistsshown = false\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$(this).ocdialog('destroy').remove()\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// ignore\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t$(dialogId).css('height', 'auto')\n\n\t\t\t\tconst $primaryButton = $dlg.closest('.oc-dialog').find('button.continue')\n\t\t\t\t$primaryButton.prop('disabled', true)\n\n\t\t\t\t/**\n\t\t\t\t *\n\t\t\t\t */\n\t\t\t\tfunction updatePrimaryButton() {\n\t\t\t\t\tconst checkedCount = $dlg.find('.conflicts .checkbox:checked').length\n\t\t\t\t\t$primaryButton.prop('disabled', checkedCount === 0)\n\t\t\t\t}\n\n\t\t\t\t// add checkbox toggling actions\n\t\t\t\t$(dialogId).find('.allnewfiles').on('click', function() {\n\t\t\t\t\tconst $checkboxes = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.allexistingfiles').on('click', function() {\n\t\t\t\t\tconst $checkboxes = $(dialogId).find('.conflict .original:not(.readonly) input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement,.original:not(.readonly)', function() {\n\t\t\t\t\tconst $checkbox = $(this).find('input[type=\"checkbox\"]')\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement input[type=\"checkbox\"],.original:not(.readonly) input[type=\"checkbox\"]', function() {\n\t\t\t\t\tconst $checkbox = $(this)\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\n\t\t\t\t// update counters\n\t\t\t\t$(dialogId).on('click', '.replacement,.allnewfiles', function() {\n\t\t\t\t\tconst count = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '({count} selected)', { count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\t\t\t\t$(dialogId).on('click', '.original,.allexistingfiles', function() {\n\t\t\t\t\tconst count = $(dialogId).find('.conflict .original input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count')\n\t\t\t\t\t\t\t.text(t('core', '({count} selected)', { count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\n\t\t\t\tdialogDeferred.resolve()\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdialogDeferred.reject()\n\t\t\t\t\talert(t('core', 'Error loading file exists template'))\n\t\t\t\t})\n\t\t}\n\t\t// }\n\t\treturn dialogDeferred.promise()\n\t},\n\n\t_getFileExistsTemplate: function() {\n\t\tconst defer = $.Deferred()\n\t\tif (!this.$fileexistsTemplate) {\n\t\t\tconst self = this\n\t\t\t$.get(OC.filePath('core', 'templates/legacy', 'fileexists.html'), function(tmpl) {\n\t\t\t\tself.$fileexistsTemplate = $(tmpl)\n\t\t\t\tdefer.resolve(self.$fileexistsTemplate)\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdefer.reject()\n\t\t\t\t})\n\t\t} else {\n\t\t\tdefer.resolve(this.$fileexistsTemplate)\n\t\t}\n\t\treturn defer.promise()\n\t},\n}\n\nexport default Dialogs\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\n/**\n * Get the current CSRF token.\n */\nexport function getRequestToken() {\n return document.head.dataset.requesttoken;\n}\n/**\n * Set a new CSRF token (e.g. because of session refresh).\n * This also emits an event bus event for the updated token.\n *\n * @param token - The new token\n * @fires Error - If the passed token is not a potential valid token\n */\nexport function setRequestToken(token) {\n if (!token || typeof token !== 'string') {\n throw new Error('Invalid CSRF token given', { cause: { token } });\n }\n document.head.dataset.requesttoken = token;\n emit('csrf-token-update', { token });\n}\n/**\n * Fetch the request token from the API.\n * This does also set it on the current context, see `setRequestToken`.\n *\n * @fires Error - If the request failed\n */\nexport async function fetchRequestToken() {\n const url = generateUrl('/csrftoken');\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error('Could not fetch CSRF token from API', { cause: response });\n }\n const { token } = await response.json();\n setRequestToken(token);\n return token;\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken } from './requesttoken.ts'\n\n/**\n * Create a new event source\n *\n * @param {string} src\n * @param {object} [data] to be send as GET\n *\n * @constructs OCEventSource\n */\nfunction OCEventSource(src, data) {\n\tlet dataStr = ''\n\tlet name\n\tlet joinChar\n\tthis.typelessListeners = []\n\tthis.closed = false\n\tthis.listeners = {}\n\tif (data) {\n\t\tfor (name in data) {\n\t\t\tdataStr += name + '=' + encodeURIComponent(data[name]) + '&'\n\t\t}\n\t}\n\tdataStr += 'requesttoken=' + encodeURIComponent(getRequestToken())\n\tif (!this.useFallBack && typeof EventSource !== 'undefined') {\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tthis.source = new EventSource(src + joinChar + dataStr)\n\t\tthis.source.onmessage = function(e) {\n\t\t\tfor (let i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](JSON.parse(e.data))\n\t\t\t}\n\t\t}.bind(this)\n\t} else {\n\t\tconst iframeId = 'oc_eventsource_iframe_' + OCEventSource.iframeCount\n\t\tOCEventSource.fallBackSources[OCEventSource.iframeCount] = this\n\t\tconst iframe = document.createElement('iframe')\n\t\tiframe.id = iframeId\n\t\tiframe.style.display = 'none'\n\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tiframe.src = src + joinChar + 'fallback=true&fallback_id=' + OCEventSource.iframeCount + '&' + dataStr\n\n\t\tthis.iframe = iframe\n\t\tdocument.body.appendChild(this.iframe)\n\t\tthis.useFallBack = true\n\t\tOCEventSource.iframeCount++\n\t}\n\t// add close listener\n\tthis.listen('__internal__', function(data) {\n\t\tif (data === 'close') {\n\t\t\tthis.close()\n\t\t}\n\t}.bind(this))\n}\nOCEventSource.fallBackSources = []\nOCEventSource.iframeCount = 0// number of fallback iframes\nOCEventSource.fallBackCallBack = function(id, type, data) {\n\tOCEventSource.fallBackSources[id].fallBackCallBack(type, data)\n}\nOCEventSource.prototype = {\n\ttypelessListeners: [],\n\tiframe: null,\n\tlisteners: {}, // only for fallback\n\tuseFallBack: false,\n\t/**\n\t * Fallback callback for browsers that don't have the\n\t * native EventSource object.\n\t *\n\t * Calls the registered listeners.\n\t *\n\t * @private\n\t * @param {string} type event type\n\t * @param {object} data received data\n\t */\n\tfallBackCallBack: function(type, data) {\n\t\tlet i\n\t\t// ignore messages that might appear after closing\n\t\tif (this.closed) {\n\t\t\treturn\n\t\t}\n\t\tif (type) {\n\t\t\tif (typeof this.listeners.done !== 'undefined') {\n\t\t\t\tfor (i = 0; i < this.listeners[type].length; i++) {\n\t\t\t\t\tthis.listeners[type][i](data)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](data)\n\t\t\t}\n\t\t}\n\t},\n\tlastLength: 0, // for fallback\n\t/**\n\t * Listen to a given type of events.\n\t *\n\t * @param {string} type event type\n\t * @param {Function} callback event callback\n\t */\n\tlisten: function(type, callback) {\n\t\tif (callback && callback.call) {\n\t\t\tif (type) {\n\t\t\t\tif (this.useFallBack) {\n\t\t\t\t\tif (!this.listeners[type]) {\n\t\t\t\t\t\tthis.listeners[type] = []\n\t\t\t\t\t}\n\t\t\t\t\tthis.listeners[type].push(callback)\n\t\t\t\t} else {\n\t\t\t\t\tthis.source.addEventListener(type, function(e) {\n\t\t\t\t\t\tif (typeof e.data !== 'undefined') {\n\t\t\t\t\t\t\tcallback(JSON.parse(e.data))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback('')\n\t\t\t\t\t\t}\n\t\t\t\t\t}, false)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.typelessListeners.push(callback)\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * Closes this event source.\n\t */\n\tclose: function() {\n\t\tthis.closed = true\n\t\tif (typeof this.source !== 'undefined') {\n\t\t\tthis.source.close()\n\t\t}\n\t},\n}\n\nexport default OCEventSource\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-FileCopyrightText: 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tloadTranslations,\n\tregister,\n\ttranslate,\n\ttranslatePlural,\n\tunregister,\n} from '@nextcloud/l10n'\nimport Handlebars from 'handlebars'\n\n/**\n * L10N namespace with localization functions.\n *\n * @namespace OC.L10n\n * @deprecated 26.0.0 use https://www.npmjs.com/package/@nextcloud/l10n\n */\nconst L10n = {\n\n\t/**\n\t * Load an app's translation bundle if not loaded already.\n\t *\n\t * @deprecated 26.0.0 use `loadTranslations` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Function} callback callback to be called when\n\t * the translations are loaded\n\t * @return {Promise} promise\n\t */\n\tload: loadTranslations,\n\n\t/**\n\t * Register an app's translation bundle.\n\t *\n\t * @deprecated 26.0.0 use `register` from https://www.npmjs.com/package/@nextcloud/l10\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Record} bundle bundle\n\t */\n\tregister,\n\n\t/**\n\t * @private\n\t * @deprecated 26.0.0 use `unregister` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\t_unregister: unregister,\n\n\t/**\n\t * Translate a string\n\t *\n\t * @deprecated 26.0.0 use `translate` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {number} [count] number to replace %n with\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @param {boolean} [options.sanitize=true] enable/disable sanitization (by default enabled)\n\t * @return {string}\n\t */\n\ttranslate,\n\n\t/**\n\t * Translate a plural string\n\t *\n\t * @deprecated 26.0.0 use `translatePlural` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @return {string} Translated string\n\t */\n\ttranslatePlural,\n}\n\nexport default L10n\n\nHandlebars.registerHelper('t', function(app, text) {\n\treturn translate(app, text)\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/** @typedef {import('jquery')} jQuery */\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport { menuSpeed } from './constants.js'\n\nexport let currentMenu = null\nexport let currentMenuToggle = null\n\n/**\n * For menu toggling\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n * @param {Function | undefined} toggle callback invoked everytime the menu is opened\n * @param {boolean} headerMenu is this a top right header menu?\n * @return {void}\n */\nexport function registerMenu($toggle, $menuEl, toggle, headerMenu) {\n\t$menuEl.addClass('menu')\n\tconst isClickableElement = $toggle.prop('tagName') === 'A' || $toggle.prop('tagName') === 'BUTTON'\n\n\t// On link and button, the enter key trigger a click event\n\t// Only use the click to avoid two fired events\n\t$toggle.on(isClickableElement ? 'click.menu' : 'click.menu keyup.menu', function(event) {\n\t\t// prevent the link event (append anchor to URL)\n\t\tevent.preventDefault()\n\n\t\t// allow enter key as a trigger\n\t\tif (event.key && event.key !== 'Enter') {\n\t\t\treturn\n\t\t}\n\n\t\tif ($menuEl.is(currentMenu)) {\n\t\t\thideMenus()\n\t\t\treturn\n\t\t} else if (currentMenu) {\n\t\t\t// another menu was open?\n\t\t\t// close it\n\t\t\thideMenus()\n\t\t}\n\n\t\tif (headerMenu === true) {\n\t\t\t$menuEl.parent().addClass('openedMenu')\n\t\t}\n\n\t\t// Set menu to expanded\n\t\t$toggle.attr('aria-expanded', true)\n\n\t\t$menuEl.slideToggle(menuSpeed, toggle)\n\t\tcurrentMenu = $menuEl\n\t\tcurrentMenuToggle = $toggle\n\t})\n}\n\n/**\n * Unregister a previously registered menu\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n */\nexport function unregisterMenu($toggle, $menuEl) {\n\t// close menu if opened\n\tif ($menuEl.is(currentMenu)) {\n\t\thideMenus()\n\t}\n\t$toggle.off('click.menu').removeClass('menutoggle')\n\t$menuEl.removeClass('menu')\n}\n\n/**\n * Hides any open menus\n *\n * @param {Function} complete callback when the hiding animation is done\n */\nexport function hideMenus(complete) {\n\tif (currentMenu) {\n\t\tconst lastMenu = currentMenu\n\t\tcurrentMenu.trigger(new $.Event('beforeHide'))\n\t\tcurrentMenu.slideUp(menuSpeed, function() {\n\t\t\tlastMenu.trigger(new $.Event('afterHide'))\n\t\t\tif (complete) {\n\t\t\t\tcomplete.apply(this, arguments)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Set menu to closed\n\t$('.menutoggle').attr('aria-expanded', false)\n\tif (currentMenuToggle) {\n\t\tcurrentMenuToggle.attr('aria-expanded', false)\n\t}\n\n\t$('.openedMenu').removeClass('openedMenu')\n\tcurrentMenu = null\n\tcurrentMenuToggle = null\n}\n\n/**\n * Shows a given element as menu\n *\n * @param {object} [$toggle] menu toggle\n * @param {object} $menuEl menu element\n * @param {Function} complete callback when the showing animation is done\n */\nexport function showMenu($toggle, $menuEl, complete) {\n\tif ($menuEl.is(currentMenu)) {\n\t\treturn\n\t}\n\thideMenus()\n\tcurrentMenu = $menuEl\n\tcurrentMenuToggle = $toggle\n\t$menuEl.trigger(new $.Event('beforeShow'))\n\t$menuEl.show()\n\t$menuEl.trigger(new $.Event('afterShow'))\n\t// no animation\n\tif (_.isFunction(complete)) {\n\t\tcomplete()\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const coreApps = ['', 'admin', 'log', 'core/search', 'core', '3rdparty']\nexport const menuSpeed = 50\nexport const PERMISSION_NONE = 0\nexport const PERMISSION_CREATE = 4\nexport const PERMISSION_READ = 1\nexport const PERMISSION_UPDATE = 2\nexport const PERMISSION_DELETE = 8\nexport const PERMISSION_SHARE = 16\nexport const PERMISSION_ALL = 31\nexport const TAG_FAVORITE = '_$!!$_'\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\n\nconst iconCache = new Map()\n\n/**\n * Return the url to icon of the given mimeType\n *\n * @param {string} mimeType The mimeType to get the icon for\n * @return {string} Url to the icon for mimeType\n */\nexport function getIconUrl(mimeType) {\n\tif (typeof mimeType === 'undefined') {\n\t\treturn undefined\n\t}\n\n\twhile (mimeType in window.OC.MimeTypeList.aliases) {\n\t\tmimeType = window.OC.MimeTypeList.aliases[mimeType]\n\t}\n\n\tif (!iconCache.has(mimeType)) {\n\t\tlet gotIcon = false\n\t\tlet path = ''\n\t\t// First try to get the correct icon from the current legacy-theme\n\t\tif (OC.theme.folder !== '' && Array.isArray(OC.MimeTypeList.themes[OC.theme.folder])) {\n\t\t\tpath = getRootUrl() + '/themes/' + window.OC.theme.folder + '/core/img/filetypes/'\n\t\t\tconst icon = getMimeTypeIcon(mimeType, window.OC.MimeTypeList.themes[OC.theme.folder])\n\t\t\tif (icon) {\n\t\t\t\tgotIcon = true\n\t\t\t\tpath += icon + '.svg'\n\t\t\t}\n\t\t}\n\n\t\t// theming is always enabled since Nextcloud 20 so we get it from that\n\t\tif (!gotIcon) {\n\t\t\tpath = generateUrl('/apps/theming/img/core/filetypes/' + getMimeTypeIcon(mimeType, window.OC.MimeTypeList.files) + '.svg')\n\t\t}\n\n\t\tpath += '?v=' + window.OCA.Theming.cacheBuster\n\t\t// Cache the result\n\t\ticonCache.set(mimeType, path)\n\t}\n\n\treturn iconCache.get(mimeType)\n}\n\n/**\n * Return the file icon we want to use for the given mimeType.\n * The file needs to be present in the supplied file list\n *\n * @param {string} mimeType The mimeType we want an icon for\n * @param {string[]} files The available icons in this theme\n * @return {string | null} The icon to use or null if there is no match\n */\nfunction getMimeTypeIcon(mimeType, files) {\n\tconst icon = mimeType.replace(new RegExp('/', 'g'), '-')\n\n\t// Generate path\n\tif (mimeType === 'dir' && files.includes('folder')) {\n\t\treturn 'folder'\n\t} else if (mimeType === 'dir-encrypted' && files.includes('folder-encrypted')) {\n\t\treturn 'folder-encrypted'\n\t} else if (mimeType === 'dir-shared' && files.includes('folder-shared')) {\n\t\treturn 'folder-shared'\n\t} else if (mimeType === 'dir-public' && files.includes('folder-public')) {\n\t\treturn 'folder-public'\n\t} else if ((mimeType === 'dir-external' || mimeType === 'dir-external-root') && files.includes('folder-external')) {\n\t\treturn 'folder-external'\n\t} else if (files.includes(icon)) {\n\t\treturn icon\n\t} else if (files.includes(icon.split('-')[0])) {\n\t\treturn icon.split('-')[0]\n\t} else if (files.includes('file')) {\n\t\treturn 'file'\n\t}\n\n\treturn null\n}\n\n/**\n * Clear the icon cache\n */\nexport function clearIconCache() {\n\ticonCache.clear()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * A little class to manage a status field for a \"saving\" process.\n * It can be used to display a starting message (e.g. \"Saving...\") and then\n * replace it with a green success message or a red error message.\n */\nexport default {\n /**\n * Displayes a \"Saving...\" message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n */\n startSaving(selector) {\n this.startAction(selector, t('core', 'Saving …'));\n },\n /**\n * Displayes a custom message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n * @param message - Plain text message to display (no HTML allowed)\n */\n startAction(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.remove('error');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n el.style.display = 'block';\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selectior for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status - is being used to decide whether the message is displayed as an error/success\n */\n finishedSaving(selector, response) {\n this.finishedAction(selector, response);\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status . Is being used to decide whether the message is displayed as an error/success\n */\n finishedAction(selector, response) {\n if (response.status === 'success') {\n this.finishedSuccess(selector, response.data.message);\n }\n else {\n this.finishedError(selector, response.data.message);\n }\n },\n /**\n * Displayes an success message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text success message to display (no HTML allowed)\n */\n finishedSuccess(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('error');\n el.classList.add('success');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n window.setTimeout(fadeOut, 3000);\n el.style.display = 'block';\n /**\n * Fades out the message element\n */\n function fadeOut() {\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n // eslint-disable-next-line @stylistic/exp-list-style\n const animation = el.animate?.([\n { opacity: 1 },\n { opacity: 0 },\n ], {\n duration: 900,\n fill: 'forwards',\n });\n if (animation) {\n animation.addEventListener('finish', () => {\n el.style.display = 'none';\n });\n }\n else {\n window.setTimeout(() => {\n el.style.display = 'none';\n }, 900);\n }\n }\n },\n /**\n * Displayes an error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text error message to display (no HTML allowed)\n */\n finishedError(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.add('error');\n el.style.display = 'block';\n },\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showMessage, TOAST_DEFAULT_TIMEOUT, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs'\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\n/** @typedef {import('jquery')} jQuery */\n\n/**\n * @todo Write documentation\n * @deprecated 17.0.0 use the `@nextcloud/dialogs` package instead\n * @namespace OC.Notification\n */\nexport default {\n\n\tupdatableNotification: null,\n\n\tgetDefaultNotificationFunction: null,\n\n\t/**\n\t * @param {Function} callback callback function\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tsetDefault(callback) {\n\t\tthis.getDefaultNotificationFunction = callback\n\t},\n\n\t/**\n\t * Hides a notification.\n\t *\n\t * If a row is given, only hide that one.\n\t * If no row is given, hide all notifications.\n\t *\n\t * @param {jQuery} [$row] notification row\n\t * @param {Function} [callback] callback\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\thide($row, callback) {\n\t\tif (_.isFunction($row)) {\n\t\t\t// first arg is the callback\n\t\t\tcallback = $row\n\t\t\t$row = undefined\n\t\t}\n\n\t\tif (!$row) {\n\t\t\tlogger.error('Missing argument $row in OC.Notification.hide() call, caller needs to be adjusted to only dismiss its own notification')\n\t\t\treturn\n\t\t}\n\n\t\t// remove the row directly\n\t\t$row.each(function() {\n\t\t\tif ($(this)[0].toastify) {\n\t\t\t\t$(this)[0].toastify.hideToast()\n\t\t\t} else {\n\t\t\t\tlogger.error('cannot hide toast because object is not set')\n\t\t\t}\n\t\t\tif (this === this.updatableNotification) {\n\t\t\t\tthis.updatableNotification = null\n\t\t\t}\n\t\t})\n\t\tif (callback) {\n\t\t\tcallback.call()\n\t\t}\n\t\tif (this.getDefaultNotificationFunction) {\n\t\t\tthis.getDefaultNotificationFunction()\n\t\t}\n\t},\n\n\t/**\n\t * Shows a notification as HTML without being sanitized before.\n\t * If you pass unsanitized user input this may lead to a XSS vulnerability.\n\t * Consider using show() instead of showHTML()\n\t *\n\t * @param {string} html Message to display\n\t * @param {object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {number} [options.timeout] timeout value, defaults to 0 (permanent)\n\t * @return {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowHtml(html, options) {\n\t\toptions = options || {}\n\t\toptions.isHTML = true\n\t\toptions.timeout = (!options.timeout) ? TOAST_PERMANENT_TIMEOUT : options.timeout\n\t\tconst toast = showMessage(html, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Shows a sanitized notification\n\t *\n\t * @param {string} text Message to display\n\t * @param {object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {number} [options.timeout] timeout value, defaults to 0 (permanent)\n\t * @return {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshow(text, options) {\n\t\tconst escapeHTML = function(text) {\n\t\t\treturn text.toString()\n\t\t\t\t.split('&').join('&')\n\t\t\t\t.split('<').join('<')\n\t\t\t\t.split('>').join('>')\n\t\t\t\t.split('\"').join('"')\n\t\t\t\t.split('\\'').join(''')\n\t\t}\n\n\t\toptions = options || {}\n\t\toptions.timeout = (!options.timeout) ? TOAST_PERMANENT_TIMEOUT : options.timeout\n\t\tconst toast = showMessage(escapeHTML(text), options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Updates (replaces) a sanitized notification.\n\t *\n\t * @param {string} text Message to display\n\t * @return {jQuery} JQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowUpdate(text) {\n\t\tif (this.updatableNotification) {\n\t\t\tthis.updatableNotification.hideToast()\n\t\t}\n\t\tthis.updatableNotification = showMessage(text, { timeout: TOAST_PERMANENT_TIMEOUT })\n\t\tthis.updatableNotification.toastElement.toastify = this.updatableNotification\n\t\treturn $(this.updatableNotification.toastElement)\n\t},\n\n\t/**\n\t * Shows a notification that disappears after x seconds, default is\n\t * 7 seconds\n\t *\n\t * @param {string} text Message to show\n\t * @param {Array} [options] options array\n\t * @param {number} [options.timeout] timeout in seconds, if this is 0 it will show the message permanently\n\t * @param {boolean} [options.isHTML] an indicator for HTML notifications (true) or text (false)\n\t * @param {string} [options.type] notification type\n\t * @return {jQuery} the toast element\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowTemporary(text, options) {\n\t\toptions = options || {}\n\t\toptions.timeout = options.timeout || TOAST_DEFAULT_TIMEOUT\n\t\tconst toast = showMessage(text, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Returns whether a notification is hidden.\n\t *\n\t * @return {boolean}\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tisHidden() {\n\t\treturn !$('#content').find('.toastify').length\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { confirmPassword, isPasswordConfirmationRequired } from '@nextcloud/password-confirmation'\n\n/**\n * @namespace OC.PasswordConfirmation\n */\nexport default {\n\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequiresPasswordConfirmation() {\n\t\treturn isPasswordConfirmationRequired()\n\t},\n\n\t/**\n\t * @param {Function} callback success callback function\n\t * @param {object} options options currently not used by confirmPassword\n\t * @param {Function} rejectCallback error callback function\n\t *\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequirePasswordConfirmation(callback, options, rejectCallback) {\n\t\tconfirmPassword().then(callback, rejectCallback)\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\t/**\n\t * @type {Array.}\n\t */\n\t_plugins: {},\n\n\t/**\n\t * Register plugin\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @param {OC.Plugin} plugin plugin\n\t */\n\tregister(targetName, plugin) {\n\t\tlet plugins = this._plugins[targetName]\n\t\tif (!plugins) {\n\t\t\tplugins = this._plugins[targetName] = []\n\t\t}\n\t\tplugins.push(plugin)\n\t},\n\n\t/**\n\t * Returns all plugin registered to the given target\n\t * name / app name / class name.\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @return {Array.} array of plugins\n\t */\n\tgetPlugins(targetName) {\n\t\treturn this._plugins[targetName] || []\n\t},\n\n\t/**\n\t * Call attach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tattach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].attach) {\n\t\t\t\tplugins[i].attach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Call detach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tdetach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].detach) {\n\t\t\t\tplugins[i].detach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\n/**\n * @deprecated 25.0.0 Use Vue based (`@nextcloud/vue`) settings components instead\n */\nexport default {\n\t_cachedGroups: null,\n\n\tescapeHTML: function(text) {\n\t\treturn text.toString()\n\t\t\t.split('&').join('&')\n\t\t\t.split('<').join('<')\n\t\t\t.split('>').join('>')\n\t\t\t.split('\"').join('"')\n\t\t\t.split('\\'').join(''')\n\t},\n\n\tasync rebuildNavigation() {\n\t\tconst { data } = await axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\treturn\n\t\t}\n\n\t\temit('nextcloud:app-menu.refresh', { apps: data.ocs.data })\n\t\twindow.dispatchEvent(new Event('resize'))\n\t},\n\n\t/**\n\t * Setup selection box for group selection.\n\t *\n\t * Values need to be separated by a pipe \"|\" character.\n\t * (mostly because a comma is more likely to be used\n\t * for groups)\n\t *\n\t * @param $elements jQuery element (hidden input) to setup select2 on\n\t * @param {Array} [extraOptions] extra options hash to pass to select2\n\t * @param {Array} [options] extra options\n\t * @param {Array} [options.excludeAdmins] flag whether to exclude admin groups\n\t */\n\tsetupGroupsSelect: function($elements, extraOptions, options) {\n\t\tconst self = this\n\t\toptions = options || {}\n\t\tif ($elements.length > 0) {\n\t\t\t// Let's load the data and THEN init our select\n\t\t\t$.ajax({\n\t\t\t\turl: generateOcsUrl('cloud/groups/details'),\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tconst results = []\n\n\t\t\t\t\tif (data.ocs.data.groups && data.ocs.data.groups.length > 0) {\n\t\t\t\t\t\tdata.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\t\tif (!options.excludeAdmins || group.id !== 'admin') {\n\t\t\t\t\t\t\t\tresults.push({ id: group.id, displayname: group.displayname })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\t// note: settings are saved through a \"change\" event registered\n\t\t\t\t\t\t// on all input fields\n\t\t\t\t\t\t$elements.select2(_.extend({\n\t\t\t\t\t\t\tplaceholder: t('core', 'Groups'),\n\t\t\t\t\t\t\tallowClear: true,\n\t\t\t\t\t\t\tmultiple: true,\n\t\t\t\t\t\t\ttoggleSelect: true,\n\t\t\t\t\t\t\tseparator: '|',\n\t\t\t\t\t\t\tdata: { results, text: 'displayname' },\n\t\t\t\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\t\t\t\tconst groups = $(element).val()\n\t\t\t\t\t\t\t\tlet selection\n\t\t\t\t\t\t\t\tif (groups && results.length > 0) {\n\t\t\t\t\t\t\t\t\tselection = _.map(_.filter((groups || []).split('|').sort(), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn results.find(function(group) {\n\t\t\t\t\t\t\t\t\t\t\treturn group.id === groupId\n\t\t\t\t\t\t\t\t\t\t}) !== undefined\n\t\t\t\t\t\t\t\t\t}), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\t\t\t\t\tdisplayname: results.find(function(group) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn group.id === groupId\n\t\t\t\t\t\t\t\t\t\t\t}).displayname,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t} else if (groups) {\n\t\t\t\t\t\t\t\t\tselection = _.map((groups || []).split('|').sort(), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\t\t\t\t\tdisplayname: groupId,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcallback(selection)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tformatResult: function(element) {\n\t\t\t\t\t\t\t\treturn self.escapeHTML(element.displayname)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tformatSelection: function(element) {\n\t\t\t\t\t\t\t\treturn self.escapeHTML(element.displayname)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\t\t\t// prevent double markup escape\n\t\t\t\t\t\t\t\treturn m\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}, extraOptions || {}))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.show(t('core', 'Group list is empty'), { type: 'error' })\n\t\t\t\t\t\tlogger.debug(data)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function(data) {\n\t\t\t\t\tOC.Notification.show(t('core', 'Unable to retrieve the group list'), { type: 'error' })\n\t\t\t\t\tlogger.debug(data)\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const theme = window._theme || {}\n","import { l as logger, F as FileType } from \"./chunks/folder-CeyZUHai.mjs\";\nimport { a, b, N, c, P } from \"./chunks/folder-CeyZUHai.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport isSvg from \"is-svg\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"@nextcloud/paths\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nconst DefaultType = Object.freeze({\n DEFAULT: \"default\",\n HIDDEN: \"hidden\"\n});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get hotkey() {\n return this._action.hotkey;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\n }\n }\n}\nfunction registerFileAction(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n}\nfunction getFileActions() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n}\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nfunction registerFileListAction(action) {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n}\nfunction getFileListActions() {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n}\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const safeSrc = exports.safeSrc = [];\n const t = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t[name] = index;\n src[index] = value;\n safeSrc[index] = safe;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\n createToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n if (typeof a2 === \"number\" && typeof b2 === \"number\") {\n return a2 === b2 ? 0 : a2 < b2 ? -1 : 1;\n }\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? re2[t.LOOSE] : re2[t.FULL]);\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.major < other.major) {\n return -1;\n }\n if (this.major > other.major) {\n return 1;\n }\n if (this.minor < other.minor) {\n return -1;\n }\n if (this.minor > other.minor) {\n return 1;\n }\n if (this.patch < other.patch) {\n return -1;\n }\n if (this.patch > other.patch) {\n return 1;\n }\n return 0;\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i = 0;\n do {\n const a2 = this.prerelease[i];\n const b2 = other.prerelease[i];\n debug(\"prerelease compare\", i, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i = 0;\n do {\n const a2 = this.build[i];\n const b2 = other.build[i];\n debug(\"build compare\", i, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n if (release.startsWith(\"pre\")) {\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re2[t.PRERELEASELOOSE] : re2[t.PRERELEASE]);\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`);\n }\n }\n }\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"release\":\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`);\n }\n this.prerelease.length = 0;\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nfunction registerFileListHeaders(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n}\nfunction getFileListHeaders() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n}\nfunction checkOptionalProperty(obj, property, type) {\n if (typeof obj[property] !== \"undefined\") {\n if (type === \"array\") {\n if (!Array.isArray(obj[property])) {\n throw new Error(`View ${property} must be an array`);\n }\n } else if (typeof obj[property] !== type) {\n throw new Error(`View ${property} must be a ${type}`);\n } else if (type === \"object\" && (obj[property] === null || Array.isArray(obj[property]))) {\n throw new Error(`View ${property} must be an object`);\n }\n }\n}\nclass Column {\n _column;\n constructor(column) {\n validateColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nfunction validateColumn(column) {\n if (typeof column !== \"object\" || column === null) {\n throw new Error(\"View column must be an object\");\n }\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n checkOptionalProperty(column, \"sort\", \"function\");\n checkOptionalProperty(column, \"summary\", \"function\");\n}\nclass View {\n _view;\n constructor(view) {\n validateView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get hidden() {\n return this._view.hidden;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nfunction validateView(view) {\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n checkOptionalProperty(view, \"caption\", \"string\");\n checkOptionalProperty(view, \"columns\", \"array\");\n checkOptionalProperty(view, \"defaultSortKey\", \"string\");\n checkOptionalProperty(view, \"emptyCaption\", \"string\");\n checkOptionalProperty(view, \"emptyTitle\", \"string\");\n checkOptionalProperty(view, \"emptyView\", \"function\");\n checkOptionalProperty(view, \"expanded\", \"boolean\");\n checkOptionalProperty(view, \"hidden\", \"boolean\");\n checkOptionalProperty(view, \"loadChildViews\", \"function\");\n checkOptionalProperty(view, \"order\", \"number\");\n checkOptionalProperty(view, \"params\", \"object\");\n checkOptionalProperty(view, \"parent\", \"string\");\n checkOptionalProperty(view, \"sticky\", \"boolean\");\n if (view.columns) {\n view.columns.forEach(validateColumn);\n const columnIds = view.columns.reduce((set, column) => set.add(column.id), /* @__PURE__ */ new Set());\n if (columnIds.size !== view.columns.length) {\n throw new Error(\"View columns must have unique ids\");\n }\n }\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n *\n * @param view The view to register\n * @throws {Error} if a view with the same id is already registered\n * @throws {Error} if the registered view is invalid\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`IView id ${view.id} is already registered`);\n }\n validateView(view);\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n *\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n *\n * @param id - The id of the view to set as active\n * @throws {Error} If no view with the given id was registered\n * @fires UpdateActiveViewEvent\n */\n setActive(id) {\n if (id === null) {\n this._currentView = null;\n } else {\n const view = this._views.find(({ id: viewId }) => viewId === id);\n if (!view) {\n throw new Error(`No view with ${id} registered`);\n }\n this._currentView = view;\n }\n const event = new CustomEvent(\"updateActive\", { detail: this._currentView });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nfunction getNavigation() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n}\nconst NewMenuEntryCategory = Object.freeze({\n /**\n * For actions where the user is intended to upload from their device\n */\n UploadFromDevice: 0,\n /**\n * For actions that create new nodes on the server without uploading\n */\n CreateNew: 1,\n /**\n * For everything not matching the other categories\n */\n Other: 2\n});\nclass NewMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? NewMenuEntryCategory.CreateNew;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param context - The creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !entry.iconSvgInline || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nfunction getNewFileMenu() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n}\nfunction addNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n}\nfunction removeNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n}\nfunction getNewFileMenuEntries(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n}\nfunction registerSidebarAction(action) {\n validateSidebarAction(action);\n window._nc_files_sidebar_actions ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sidebar_actions.has(action.id)) {\n logger.warn(`Sidebar action with id \"${action.id}\" already registered. Skipping.`);\n return;\n }\n window._nc_files_sidebar_actions.set(action.id, action);\n logger.debug(`New sidebar action with id \"${action.id}\" registered.`);\n}\nfunction getSidebarActions() {\n if (window._nc_files_sidebar_actions) {\n return [...window._nc_files_sidebar_actions.values()];\n }\n return [];\n}\nfunction validateSidebarAction(action) {\n if (typeof action !== \"object\") {\n throw new Error(\"Sidebar action is not an object\");\n }\n if (!action.id || typeof action.id !== \"string\" || action.id !== CSS.escape(action.id)) {\n throw new Error(\"Sidebar actions need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Sidebar actions need to have a displayName function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Sidebar actions need to have a iconSvgInline function\");\n }\n if (!action.enabled || typeof action.enabled !== \"function\") {\n throw new Error(\"Sidebar actions need to have an enabled function\");\n }\n if (!action.onClick || typeof action.onClick !== \"function\") {\n throw new Error(\"Sidebar actions need to have an onClick function\");\n }\n}\nfunction registerSidebarTab(tab) {\n validateSidebarTab(tab);\n window._nc_files_sidebar_tabs ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sidebar_tabs.has(tab.id)) {\n logger.warn(`Sidebar tab with id \"${tab.id}\" already registered. Skipping.`);\n return;\n }\n window._nc_files_sidebar_tabs.set(tab.id, tab);\n logger.debug(`New sidebar tab with id \"${tab.id}\" registered.`);\n}\nfunction getSidebarTabs() {\n if (window._nc_files_sidebar_tabs) {\n return [...window._nc_files_sidebar_tabs.values()];\n }\n return [];\n}\nfunction validateSidebarTab(tab) {\n if (typeof tab !== \"object\") {\n throw new Error(\"Sidebar tab is not an object\");\n }\n if (!tab.id || typeof tab.id !== \"string\" || tab.id !== CSS.escape(tab.id)) {\n throw new Error(\"Sidebar tabs need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!tab.tagName || typeof tab.tagName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have the tagName name set\");\n }\n if (!tab.tagName.match(/^[a-z][a-z0-9-_]+$/)) {\n throw new Error('Sidebar tab \"tagName\" is invalid');\n }\n if (!tab.displayName || typeof tab.displayName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have a name set\");\n }\n if (typeof tab.iconSvgInline !== \"string\" || !isSvg(tab.iconSvgInline)) {\n throw new Error(\"Sidebar tabs need to have an valid SVG icon\");\n }\n if (typeof tab.order !== \"number\") {\n throw new Error(\"Sidebar tabs need to have a numeric order set\");\n }\n if (tab.enabled && typeof tab.enabled !== \"function\") {\n throw new Error('Sidebar tab \"enabled\" is not a function');\n }\n if (tab.onInit && typeof tab.onInit !== \"function\") {\n throw new Error('Sidebar tab \"onInit\" is not a function');\n }\n}\nclass SidebarProxy {\n get #impl() {\n return window.OCA?.Files?._sidebar?.();\n }\n get available() {\n return !!this.#impl;\n }\n get isOpen() {\n return this.#impl?.isOpen ?? false;\n }\n get activeTab() {\n return this.#impl?.activeTab;\n }\n get node() {\n return this.#impl?.node;\n }\n open(node, tab) {\n this.#impl?.open(node, tab);\n }\n close() {\n this.#impl?.close();\n }\n setActiveTab(tabId) {\n this.#impl?.setActiveTab(tabId);\n }\n registerTab(tab) {\n registerSidebarTab(tab);\n }\n getTabs(context) {\n return this.#impl?.getTabs(context) ?? [];\n }\n getActions(context) {\n return this.#impl?.getActions(context) ?? [];\n }\n registerAction(action) {\n registerSidebarAction(action);\n }\n}\nfunction getSidebar() {\n return new SidebarProxy();\n}\nconst InvalidFilenameErrorReason = Object.freeze({\n ReservedName: \"reserved name\",\n Character: \"character\",\n Extension: \"extension\"\n});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: InvalidFilenameErrorReason.Character, filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({ filename, segment: filename, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({ filename, segment: basename2, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: InvalidFilenameErrorReason.Extension, filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n) => `(${n})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nconst FilesSortingMode = Object.freeze({\n Name: \"basename\",\n Modified: \"mtime\",\n Size: \"size\"\n});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: FilesSortingMode.Name,\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n function basename2(node) {\n const name = node.displayname || node.attributes?.displayname || node.basename || \"\";\n if (node.type === FileType.Folder) {\n return name;\n }\n return name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n }\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== FilesSortingMode.Name ? [(v) => v[sortingOptions.sortingMode] ?? v.attributes[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === FilesSortingMode.Modified ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== FilesSortingMode.Modified && sortingOptions.sortingMode !== FilesSortingMode.Name ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nexport {\n Column,\n DefaultType,\n a as File,\n FileAction,\n FileListAction,\n FileListFilter,\n FileType,\n FilesSortingMode,\n b as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n c as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n formatFileSize,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenu,\n getNewFileMenuEntries,\n getSidebar,\n getSidebarActions,\n getSidebarTabs,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n registerSidebarAction,\n registerSidebarTab,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateColumn,\n validateFilename,\n validateView\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport _ from 'underscore'\nimport OC from './index.js'\n\n/**\n * Utility class for the history API,\n * includes fallback to using the URL hash when\n * the browser doesn't support the history API.\n *\n * @namespace OC.Util.History\n */\nexport default {\n\n\t_handlers: [],\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t * @param {boolean} [replace] whether to replace instead of pushing\n\t */\n\t_pushState(params, url, replace) {\n\t\tlet strParams\n\t\tif (typeof (params) === 'string') {\n\t\t\tstrParams = params\n\t\t} else {\n\t\t\tstrParams = OC.buildQueryString(params)\n\t\t}\n\n\t\tif (window.history.pushState) {\n\t\t\turl = url || location.pathname + '?' + strParams\n\t\t\t// Workaround for bug with SVG and window.history.pushState on Firefox < 51\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=652991\n\t\t\tconst isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n\t\t\tif (isFirefox && parseInt(navigator.userAgent.split('/').pop()) < 51) {\n\t\t\t\tconst patterns = document.querySelectorAll('[fill^=\"url(#\"], [stroke^=\"url(#\"], [filter^=\"url(#invert\"]')\n\t\t\t\tfor (let i = 0, ii = patterns.length, pattern; i < ii; i++) {\n\t\t\t\t\tpattern = patterns[i]\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.fill = pattern.style.fill\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.stroke = pattern.style.stroke\n\t\t\t\t\tpattern.removeAttribute('filter')\n\t\t\t\t\tpattern.setAttribute('filter', 'url(#invert)')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (replace) {\n\t\t\t\twindow.history.replaceState(params, '', url)\n\t\t\t} else {\n\t\t\t\twindow.history.pushState(params, '', url)\n\t\t\t}\n\t\t} else {\n\t\t\t// use URL hash for IE8\n\t\t\twindow.location.hash = '?' + strParams\n\t\t\t// inhibit next onhashchange that just added itself\n\t\t\t// to the event queue\n\t\t\tthis._cancelPop = true\n\t\t}\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used, using the params as query string\n\t */\n\tpushState(params, url) {\n\t\tthis._pushState(params, url, false)\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t */\n\treplaceState(params, url) {\n\t\tthis._pushState(params, url, true)\n\t},\n\n\t/**\n\t * Add a popstate handler\n\t *\n\t * @param {Function} handler handler\n\t */\n\taddOnPopStateHandler(handler) {\n\t\tthis._handlers.push(handler)\n\t},\n\n\t/**\n\t * Parse a query string from the hash part of the URL.\n\t * (workaround for IE8 / IE9)\n\t *\n\t * @return {string}\n\t */\n\t_parseHashQuery() {\n\t\tconst hash = window.location.hash\n\t\tconst pos = hash.indexOf('?')\n\t\tif (pos >= 0) {\n\t\t\treturn hash.substr(pos + 1)\n\t\t}\n\t\tif (hash.length) {\n\t\t\t// remove hash sign\n\t\t\treturn hash.substr(1)\n\t\t}\n\t\treturn ''\n\t},\n\n\t_decodeQuery(query) {\n\t\treturn query.replace(/\\+/g, ' ')\n\t},\n\n\t/**\n\t * Parse the query/search part of the URL.\n\t * Also try and parse it from the URL hash (for IE8)\n\t *\n\t * @return {object} map of parameters\n\t */\n\tparseUrlQuery() {\n\t\tconst query = this._parseHashQuery()\n\t\tlet params\n\t\t// try and parse from URL hash first\n\t\tif (query) {\n\t\t\tparams = OC.parseQueryString(this._decodeQuery(query))\n\t\t}\n\t\t// else read from query attributes\n\t\tparams = _.extend(params || {}, OC.parseQueryString(this._decodeQuery(location.search)))\n\t\treturn params || {}\n\t},\n\n\t_onPopState(e) {\n\t\tif (this._cancelPop) {\n\t\t\tthis._cancelPop = false\n\t\t\treturn\n\t\t}\n\t\tlet params\n\t\tif (!this._handlers.length) {\n\t\t\treturn\n\t\t}\n\t\tparams = (e && e.state)\n\t\tif (_.isString(params)) {\n\t\t\tparams = OC.parseQueryString(params)\n\t\t} else if (!params) {\n\t\t\tparams = this.parseUrlQuery() || {}\n\t\t}\n\t\tfor (let i = 0; i < this._handlers.length; i++) {\n\t\t\tthis._handlers[i](params)\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize as humanFileSize } from '@nextcloud/files'\nimport moment from 'moment'\nimport logger from '../logger.js'\nimport OC from './index.js'\nimport History from './util-history.js'\n\n/**\n * @param {any} t -\n */\nfunction chunkify(t) {\n\t// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288\n\tconst tz = []\n\tlet x = 0\n\tlet y = -1\n\tlet n = 0\n\tlet c\n\n\twhile (x < t.length) {\n\t\tc = t.charAt(x)\n\t\t// only include the dot in strings\n\t\tconst m = ((!n && c === '.') || (c >= '0' && c <= '9'))\n\t\tif (m !== n) {\n\t\t\t// next chunk\n\t\t\ty++\n\t\t\ttz[y] = ''\n\t\t\tn = m\n\t\t}\n\t\ttz[y] += c\n\t\tx++\n\t}\n\treturn tz\n}\n\n/**\n * Utility functions\n *\n * @namespace OC.Util\n */\nexport default {\n\n\tHistory,\n\n\t/**\n\t * @deprecated use https://nextcloud.github.io/nextcloud-files/functions/formatFileSize.html\n\t */\n\thumanFileSize,\n\n\t/**\n\t * Returns a file size in bytes from a humanly readable string\n\t * Makes 2kB to 2048.\n\t * Inspired by computerFileSize in helper.php\n\t *\n\t * @param {string} string file size in human-readable format\n\t * @return {number} or null if string could not be parsed\n\t */\n\tcomputerFileSize(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\treturn null\n\t\t}\n\n\t\tconst s = string.toLowerCase().trim()\n\t\tlet bytes = null\n\n\t\tconst bytesArray = {\n\t\t\tb: 1,\n\t\t\tk: 1024,\n\t\t\tkb: 1024,\n\t\t\tmb: 1024 * 1024,\n\t\t\tm: 1024 * 1024,\n\t\t\tgb: 1024 * 1024 * 1024,\n\t\t\tg: 1024 * 1024 * 1024,\n\t\t\ttb: 1024 * 1024 * 1024 * 1024,\n\t\t\tt: 1024 * 1024 * 1024 * 1024,\n\t\t\tpb: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t\tp: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t}\n\n\t\tconst matches = s.match(/^[\\s+]?([0-9]*)(\\.([0-9]+))?( +)?([kmgtp]?b?)$/i)\n\t\tif (matches !== null) {\n\t\t\tbytes = parseFloat(s)\n\t\t\tif (!isFinite(bytes)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t\tif (matches[5]) {\n\t\t\tbytes = bytes * bytesArray[matches[5]]\n\t\t}\n\n\t\tbytes = Math.round(bytes)\n\t\treturn bytes\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @param {string} format date format, see momentjs docs\n\t * @return {string} timestamp formatted as requested\n\t */\n\tformatDate(timestamp, format) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tformat = format || 'LLL'\n\t\treturn moment(timestamp).format(format)\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @return {string} human readable difference from now\n\t */\n\trelativeModifiedDate(timestamp) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tconst diff = moment().diff(moment(timestamp))\n\t\tif (diff >= 0 && diff < 45000) {\n\t\t\treturn t('core', 'seconds ago')\n\t\t}\n\t\treturn moment(timestamp).fromNow()\n\t},\n\n\t/**\n\t * Returns the width of a generic browser scrollbar\n\t *\n\t * @return {number} width of scrollbar\n\t */\n\tgetScrollBarWidth() {\n\t\tif (this._scrollBarWidth) {\n\t\t\treturn this._scrollBarWidth\n\t\t}\n\n\t\tconst inner = document.createElement('p')\n\t\tinner.style.width = '100%'\n\t\tinner.style.height = '200px'\n\n\t\tconst outer = document.createElement('div')\n\t\touter.style.position = 'absolute'\n\t\touter.style.top = '0px'\n\t\touter.style.left = '0px'\n\t\touter.style.visibility = 'hidden'\n\t\touter.style.width = '200px'\n\t\touter.style.height = '150px'\n\t\touter.style.overflow = 'hidden'\n\t\touter.appendChild(inner)\n\n\t\tdocument.body.appendChild(outer)\n\t\tconst w1 = inner.offsetWidth\n\t\touter.style.overflow = 'scroll'\n\t\tlet w2 = inner.offsetWidth\n\t\tif (w1 === w2) {\n\t\t\tw2 = outer.clientWidth\n\t\t}\n\n\t\tdocument.body.removeChild(outer)\n\n\t\tthis._scrollBarWidth = (w1 - w2)\n\n\t\treturn this._scrollBarWidth\n\t},\n\n\t/**\n\t * Remove the time component from a given date\n\t *\n\t * @param {Date} date date\n\t * @return {Date} date with stripped time\n\t */\n\tstripTime(date) {\n\t\t// FIXME: likely to break when crossing DST\n\t\t// would be better to use a library like momentJS\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t},\n\n\t/**\n\t * Compare two strings to provide a natural sort\n\t *\n\t * @param {string} a first string to compare\n\t * @param {string} b second string to compare\n\t * @return {number} -1 if b comes before a, 1 if a comes before b\n\t * or 0 if the strings are identical\n\t */\n\tnaturalSortCompare(a, b) {\n\t\tlet x\n\t\tconst aa = chunkify(a)\n\t\tconst bb = chunkify(b)\n\n\t\tfor (x = 0; aa[x] && bb[x]; x++) {\n\t\t\tif (aa[x] !== bb[x]) {\n\t\t\t\tconst aNum = Number(aa[x])\n\t\t\t\tconst bNum = Number(bb[x])\n\t\t\t\t// note: == is correct here to include null == undefined\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\tif (aNum == aa[x] && bNum == bb[x]) {\n\t\t\t\t\treturn aNum - bNum\n\t\t\t\t} else {\n\t\t\t\t\t// Note: This locale setting isn't supported by all browsers but for the ones\n\t\t\t\t\t// that do there will be more consistency between client-server sorting\n\t\t\t\t\treturn aa[x].localeCompare(bb[x], OC.getLanguage())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn aa.length - bb.length\n\t},\n\n\t/**\n\t * Calls the callback in a given interval until it returns true\n\t *\n\t * @param {Function} callback function to call on success\n\t * @param {number} interval in milliseconds\n\t */\n\twaitFor(callback, interval) {\n\t\tconst internalCallback = function() {\n\t\t\tif (callback() !== true) {\n\t\t\t\tsetTimeout(internalCallback, interval)\n\t\t\t}\n\t\t}\n\n\t\tinternalCallback()\n\t},\n\n\t/**\n\t * Checks if a cookie with the given name is present and is set to the provided value.\n\t *\n\t * @param {string} name name of the cookie\n\t * @param {string} value value of the cookie\n\t * @return {boolean} true if the cookie with the given name has the given value\n\t */\n\tisCookieSetToValue(name, value) {\n\t\tconst cookies = document.cookie.split(';')\n\t\tfor (let i = 0; i < cookies.length; i++) {\n\t\t\tconst cookie = cookies[i].split('=')\n\t\t\tif (cookie[0].trim() === name && cookie[1].trim() === value) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nlet webroot = window._oc_webroot\n\nif (typeof webroot === 'undefined') {\n\twebroot = location.pathname\n\tconst pos = webroot.indexOf('/index.php/')\n\tif (pos !== -1) {\n\t\twebroot = webroot.substr(0, pos)\n\t} else {\n\t\twebroot = webroot.substr(0, webroot.lastIndexOf('/'))\n\t}\n}\n\nexport default webroot\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\nimport {\n\tgetCanonicalLocale,\n\tgetLanguage,\n\tgetLocale,\n} from '@nextcloud/l10n'\nimport {\n\tbasename,\n\tdirname,\n\tencodePath,\n\tisSamePath,\n\tjoin,\n} from '@nextcloud/paths'\nimport {\n\tgenerateFilePath,\n\tgenerateOcsUrl,\n\tgenerateRemoteUrl,\n\tgenerateUrl,\n\tgetRootUrl,\n\timagePath,\n\tlinkTo,\n} from '@nextcloud/router'\nimport logger from '../logger.js'\nimport { isUserAdmin } from './admin.js'\nimport { appConfig } from './appconfig.js'\nimport Apps from './apps.js'\nimport appswebroots from './appswebroots.js'\nimport Backbone from './backbone.js'\nimport { getCapabilities } from './capabilities.js'\nimport Config from './config.js'\nimport {\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n} from './constants.js'\nimport { currentUser, getCurrentUser } from './currentuser.js'\nimport { debug } from './debug.js'\nimport Dialogs from './dialogs.js'\nimport EventSource from './eventsource.js'\nimport L10N from './l10n.js'\nimport {\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n} from './menu.js'\nimport * as MimeType from './mimeType.js'\nimport msg from './msg.js'\nimport Notification from './notification.js'\nimport PasswordConfirmation from './password-confirmation.js'\nimport Plugins from './plugins.js'\nimport {\n\tbuild as buildQueryString,\n\tparse as parseQueryString,\n} from './query-string.ts'\nimport { getRequestToken } from './requesttoken.ts'\nimport {\n\tlinkToRemoteBase,\n} from './routing.js'\nimport Settings from './settings.js'\nimport { theme } from './theme.js'\nimport Util from './util.js'\nimport webroot from './webroot.js'\n\n/** @namespace OC */\nexport default {\n\t/*\n\t * Constants\n\t */\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n\n\t/*\n\t * Deprecated helpers to be removed\n\t */\n\tApps,\n\tappConfig,\n\tappswebroots,\n\tBackbone,\n\tconfig: Config,\n\t/**\n\t * Currently logged in user or null if none\n\t *\n\t * @type {string}\n\t * @deprecated use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tcurrentUser,\n\tdialogs: Dialogs,\n\tEventSource,\n\tMimeType,\n\t/**\n\t * Returns the currently logged in user or null if there is no logged in\n\t * user (public page mode)\n\t *\n\t * @since 9.0.0\n\t * @deprecated 19.0.0 use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tgetCurrentUser,\n\tisUserAdmin,\n\tL10N,\n\n\t/**\n\t * This is already handled by `interceptRequests` in `core/src/init.js`.\n\t *\n\t * @deprecated 33.0.0 - unused by Nextcloud and only a stub remains. Just remove usage.\n\t */\n\tregisterXHRForErrorProcessing: () => {},\n\n\t/**\n\t * Capabilities\n\t *\n\t * @type {Array}\n\t * @deprecated 20.0.0 use @nextcloud/capabilities instead\n\t */\n\tgetCapabilities,\n\n\t/*\n\t * Legacy menu helpers\n\t */\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n\n\t/*\n\t * Path helpers\n\t */\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tbasename,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tencodePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tdirname,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tisSamePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tjoinPaths: join,\n\n\t/**\n\t * @deprecated 20.0.0 use `getCanonicalLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetCanonicalLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLanguage` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLanguage,\n\n\t// Query string helpers\n\tbuildQueryString,\n\tparseQueryString,\n\n\tmsg,\n\tNotification,\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\tPasswordConfirmation,\n\tPlugins,\n\t/**\n\t * @deprecated 25.0.0 Use Vue based (`@nextcloud/vue`) settings components instead\n\t */\n\tSettings,\n\ttheme,\n\tUtil,\n\tdebug,\n\t/**\n\t * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tfilePath: generateFilePath,\n\t/**\n\t * @deprecated 19.0.0 use `generateUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgenerateUrl,\n\t/**\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgetRootPath: getRootUrl,\n\t/**\n\t * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\timagePath,\n\trequestToken: getRequestToken(),\n\t/**\n\t * @deprecated 19.0.0 use `linkTo` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkTo,\n\t/**\n\t * @param {string} service service name\n\t * @param {number} version OCS API version\n\t * @return {string} OCS API base path\n\t * @deprecated 19.0.0 use `generateOcsUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToOCS: (service, version) => {\n\t\treturn generateOcsUrl(service, {}, {\n\t\t\tocsVersion: version || 1,\n\t\t}) + '/'\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `generateRemoteUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToRemote: generateRemoteUrl,\n\tlinkToRemoteBase,\n\t/**\n\t * Relative path to Nextcloud root.\n\t * For example: \"/nextcloud\"\n\t *\n\t * @type {string}\n\t *\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t * @see OC#getRootPath\n\t */\n\twebroot,\n}\n\n// Keep the request token prop in sync\nsubscribe('csrf-token-update', (e) => {\n\tOC.requestToken = e.token\n\n\t// Logging might help debug (Sentry) issues\n\tlogger.info('OC.requestToken changed', { token: e.token })\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities'\nimport logger from '../logger.js'\n\n/**\n * Returns the capabilities\n *\n * @return {Array} capabilities\n *\n * @since 14.0.0\n */\nexport function getCapabilities() {\n\tif (OC.debug) {\n\t\tlogger.warn('OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities')\n\t}\n\treturn realGetCapabilities()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Parses a URL query string into a JS map\n *\n * @param queryString - Query string in the format param1=1234¶m2=abcde¶m3=xyz\n * @return Object containing key/values matching the URL parameters\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function parse(queryString) {\n const params = new URLSearchParams(queryString);\n return Object.fromEntries(params.entries());\n}\n/**\n * Builds a URL query from a JS map.\n *\n * @param params - Object containing key/values matching the URL parameters\n * @return String containing a URL query (without question) mark\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function build(params) {\n if (!params) {\n return '';\n }\n const search = new URLSearchParams(params);\n return search.toString();\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tgetRootUrl as realGetRootUrl,\n} from '@nextcloud/router'\n\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\nexport function linkToRemoteBase(service) {\n\treturn realGetRootUrl() + '/remote.php/' + service\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport OC from '../OC/index.js'\nimport L10n from '../OC/l10n.js'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tOC,\n\t\t}\n\t},\n\tmethods: {\n\t\tt: L10n.translate.bind(L10n),\n\t\tn: L10n.translatePlural.bind(L10n),\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport LoginView from './views/Login.vue'\nimport Nextcloud from './mixins/Nextcloud.js'\n// eslint-disable-next-line no-unused-vars\nimport OC from './OC/index.js' // TODO: Not needed but L10n breaks if removed\n\nVue.mixin(Nextcloud)\n\nconst View = Vue.extend(LoginView)\nnew View().$mount('#login')\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 27444,\n\t\"./ar-sa.js\": 27444,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n // eslint-disable-next-line no-console\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-form[data-v-f91ba7fe]{text-align:start;font-size:1rem;margin:0}.login-form__fieldset[data-v-f91ba7fe]{width:100%;display:flex;flex-direction:column;gap:.5rem}.login-form__headline[data-v-f91ba7fe]{text-align:center;overflow-wrap:anywhere}.login-form[data-v-f91ba7fe] input:invalid:not(:user-invalid){border-color:var(--color-border-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA,CACA,cAAA,CACA,QAAA,CAEA,uCACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,SAAA,CAGD,uCACC,iBAAA,CACA,sBAAA,CAID,8DACC,uDAAA\",\"sourcesContent\":[\"\\n.login-form {\\n\\ttext-align: start;\\n\\tfont-size: 1rem;\\n\\tmargin: 0;\\n\\n\\t&__fieldset {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: .5rem;\\n\\t}\\n\\n\\t&__headline {\\n\\t\\ttext-align: center;\\n\\t\\toverflow-wrap: anywhere;\\n\\t}\\n\\n\\t// Only show the error state if the user interacted with the login box\\n\\t:deep(input:invalid:not(:user-invalid)) {\\n\\t\\tborder-color: var(--color-border-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (typeof Symbol === 'function' && context[Symbol.iterator]) {\n var newContext = [];\n var iterator = context[Symbol.iterator]();\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n context = newContext;\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n });\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDbkUsWUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLFlBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBjb250ZXh0W1N5bWJvbC5pdGVyYXRvcl0pIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGV4dCA9IFtdO1xuICAgICAgICBjb25zdCBpdGVyYXRvciA9IGNvbnRleHRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBmb3IgKGxldCBpdCA9IGl0ZXJhdG9yLm5leHQoKTsgIWl0LmRvbmU7IGl0ID0gaXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgbmV3Q29udGV4dC5wdXNoKGl0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0ID0gbmV3Q29udGV4dDtcbiAgICAgICAgZm9yIChsZXQgaiA9IGNvbnRleHQubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihpLCBpLCBpID09PSBjb250ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIC8vIFdlJ3JlIHJ1bm5pbmcgdGhlIGl0ZXJhdGlvbnMgb25lIHN0ZXAgb3V0IG9mIHN5bmMgc28gd2UgY2FuIGRldGVjdFxuICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAvLyBhbiBpdGVybWVkaWF0ZSBrZXlzIGFycmF5LlxuICAgICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW9yS2V5ID0ga2V5O1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihwcmlvcktleSwgaSAtIDEsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIHJldCA9IGludmVyc2UodGhpcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.password-less-login-form[data-v-0b57a680]{display:flex;flex-direction:column;gap:.5rem;margin:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/PasswordLessLoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,QAAA\",\"sourcesContent\":[\"\\n.password-less-login-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 0.5rem;\\n\\tmargin: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n\n var defaultPropertyWhiteList = Object.create(null);\n // eslint-disable-next-line no-proto\n defaultPropertyWhiteList['__proto__'] = false;\n\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n _logger2['default'].log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMvQyxXQUFXOzs7O0FBRTlCLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFdEMsU0FBUyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUU7QUFDdkQsTUFBSSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELHdCQUFzQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUM5Qyx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQzs7QUFFbkQsTUFBSSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUVuRCwwQkFBd0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRTlDLFNBQU87QUFDTCxjQUFVLEVBQUU7QUFDVixlQUFTLEVBQUUsNkNBQ1Qsd0JBQXdCLEVBQ3hCLGNBQWMsQ0FBQyxzQkFBc0IsQ0FDdEM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQyw2QkFBNkI7S0FDM0Q7QUFDRCxXQUFPLEVBQUU7QUFDUCxlQUFTLEVBQUUsNkNBQ1Qsc0JBQXNCLEVBQ3RCLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDbkM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQywwQkFBMEI7S0FDeEQ7R0FDRixDQUFDO0NBQ0g7O0FBRU0sU0FBUyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRTtBQUN4RSxNQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtBQUNoQyxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDakUsTUFBTTtBQUNMLFdBQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztHQUNwRTtDQUNGOztBQUVELFNBQVMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLFlBQVksRUFBRTtBQUMvRCxNQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDbkUsV0FBTyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDO0dBQ25FO0FBQ0QsTUFBSSx5QkFBeUIsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO0FBQ3hELFdBQU8seUJBQXlCLENBQUMsWUFBWSxDQUFDO0dBQy9DO0FBQ0QsZ0NBQThCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDN0MsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFlBQVksRUFBRTtBQUNwRCxNQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtBQUMzQyxvQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDdEMsd0JBQU8sR0FBRyxDQUNSLE9BQU8sRUFDUCxpRUFBK0QsWUFBWSxvSUFDSCxvSEFDMkMsQ0FDcEgsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxxQkFBcUIsR0FBRztBQUN0QyxRQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsWUFBWSxFQUFJO0FBQ3BELFdBQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7R0FDdkMsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoicHJvdG8tYWNjZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTmV3TG9va3VwT2JqZWN0IH0gZnJvbSAnLi9jcmVhdGUtbmV3LWxvb2t1cC1vYmplY3QnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBsb2dnZWRQcm9wZXJ0aWVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChydW50aW1lT3B0aW9ucykge1xuICBsZXQgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ2NvbnN0cnVjdG9yJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19kZWZpbmVHZXR0ZXJfXyddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lU2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2xvb2t1cEdldHRlcl9fJ10gPSBmYWxzZTtcblxuICBsZXQgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvXG4gIGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdFsnX19wcm90b19fJ10gPSBmYWxzZTtcblxuICByZXR1cm4ge1xuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHdoaXRlbGlzdDogY3JlYXRlTmV3TG9va3VwT2JqZWN0KFxuICAgICAgICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b1Byb3BlcnRpZXNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9Qcm9wZXJ0aWVzQnlEZWZhdWx0XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCxcbiAgICAgICAgcnVudGltZU9wdGlvbnMuYWxsb3dlZFByb3RvTWV0aG9kc1xuICAgICAgKSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogcnVudGltZU9wdGlvbnMuYWxsb3dQcm90b01ldGhvZHNCeURlZmF1bHRcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXN1bHRJc0FsbG93ZWQocmVzdWx0LCBwcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkge1xuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBjaGVja1doaXRlTGlzdChwcm90b0FjY2Vzc0NvbnRyb2wubWV0aG9kcywgcHJvcGVydHlOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLnByb3BlcnRpZXMsIHByb3BlcnR5TmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZSwgcHJvcGVydHlOYW1lKSB7XG4gIGlmIChwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLndoaXRlbGlzdFtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSA9PT0gdHJ1ZTtcbiAgfVxuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLmRlZmF1bHRWYWx1ZTtcbiAgfVxuICBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKSB7XG4gIGlmIChsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gIT09IHRydWUpIHtcbiAgICBsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gPSB0cnVlO1xuICAgIGxvZ2dlci5sb2coXG4gICAgICAnZXJyb3InLFxuICAgICAgYEhhbmRsZWJhcnM6IEFjY2VzcyBoYXMgYmVlbiBkZW5pZWQgdG8gcmVzb2x2ZSB0aGUgcHJvcGVydHkgXCIke3Byb3BlcnR5TmFtZX1cIiBiZWNhdXNlIGl0IGlzIG5vdCBhbiBcIm93biBwcm9wZXJ0eVwiIG9mIGl0cyBwYXJlbnQuXFxuYCArXG4gICAgICAgIGBZb3UgY2FuIGFkZCBhIHJ1bnRpbWUgb3B0aW9uIHRvIGRpc2FibGUgdGhlIGNoZWNrIG9yIHRoaXMgd2FybmluZzpcXG5gICtcbiAgICAgICAgYFNlZSBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vYXBpLXJlZmVyZW5jZS9ydW50aW1lLW9wdGlvbnMuaHRtbCNvcHRpb25zLXRvLWNvbnRyb2wtcHJvdG90eXBlLWFjY2VzcyBmb3IgZGV0YWlsc2BcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldExvZ2dlZFByb3BlcnRpZXMoKSB7XG4gIE9iamVjdC5rZXlzKGxvZ2dlZFByb3BlcnRpZXMpLmZvckVhY2gocHJvcGVydHlOYW1lID0+IHtcbiAgICBkZWxldGUgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n var wrapper = function wrapper() /* dynamic arguments */{\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","/*\n * vim: expandtab shiftwidth=4 softtabstop=4\n */\n\nconst dav = {}\n\ndav._XML_CHAR_MAP = {\n '<': '<',\n '>': '>',\n '&': '&',\n '\"': '"',\n \"'\": '''\n};\n\ndav._escapeXml = function(s) {\n return s.replace(/[<>&\"']/g, function (ch) {\n return dav._XML_CHAR_MAP[ch];\n });\n};\n\ndav.Client = function(options) {\n var i;\n for(i in options) {\n this[i] = options[i];\n }\n\n};\n\ndav.Client.prototype = {\n\n baseUrl : null,\n\n userName : null,\n\n password : null,\n\n\n xmlNamespaces : {\n 'DAV:' : 'd'\n },\n\n /**\n * Generates a propFind request.\n *\n * @param {string} url Url to do the propfind request on\n * @param {Array} properties List of properties to retrieve.\n * @param {string} depth \"0\", \"1\" or \"infinity\"\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propFind : function(url, properties, depth, headers) {\n\n if(typeof depth === \"undefined\") {\n depth = '0';\n }\n\n // depth header must be a string, in case a number was passed in\n depth = '' + depth;\n\n headers = headers || {};\n\n headers['Depth'] = depth;\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '\\n' +\n '\\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(properties[ii]);\n if (this.xmlNamespaces[property.namespace]) {\n body+=' <' + this.xmlNamespaces[property.namespace] + ':' + property.name + ' />\\n';\n } else {\n body+=' \\n';\n }\n\n }\n body+=' \\n';\n body+='';\n\n return this.request('PROPFIND', url, headers, body).then(\n function(result) {\n\n if (depth === '0') {\n return {\n status: result.status,\n body: result.body[0],\n xhr: result.xhr\n };\n } else {\n return {\n status: result.status,\n body: result.body,\n xhr: result.xhr\n };\n }\n\n }.bind(this)\n );\n\n },\n\n /**\n * Renders a \"d:set\" block for the given properties.\n *\n * @param {Object.} properties\n * @return {String} XML \"\" block\n */\n _renderPropSet: function(properties) {\n var body = ' \\n' +\n ' \\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(ii);\n var propName;\n var propValue = properties[ii];\n if (this.xmlNamespaces[property.namespace]) {\n propName = this.xmlNamespaces[property.namespace] + ':' + property.name;\n } else {\n propName = 'x:' + property.name + ' xmlns:x=\"' + property.namespace + '\"';\n }\n\n // FIXME: hard-coded for now until we allow properties to\n // specify whether to be escaped or not\n if (propName !== 'd:resourcetype') {\n propValue = dav._escapeXml(propValue);\n }\n body += ' <' + propName + '>' + propValue + '\\n';\n }\n body +=' \\n';\n body +=' \\n';\n return body;\n },\n\n /**\n * Generates a propPatch request.\n *\n * @param {string} url Url to do the proppatch request on\n * @param {Object.} properties List of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propPatch : function(url, properties, headers) {\n headers = headers || {};\n\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '\\n' +\n '} [properties] list of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n mkcol : function(url, properties, headers) {\n var body = '';\n headers = headers || {};\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n if (properties) {\n body =\n '\\n' +\n ' 0) {\n var subNodes = [];\n // filter out text nodes\n for (var j = 0; j < propNode.childNodes.length; j++) {\n var node = propNode.childNodes[j];\n if (node.nodeType === 1) {\n subNodes.push(node);\n }\n }\n if (subNodes.length) {\n content = subNodes;\n }\n }\n\n return content || propNode.textContent || propNode.text || '';\n },\n\n /**\n * Parses a multi-status response body.\n *\n * @param {string} xmlBody\n * @param {Array}\n */\n parseMultiStatus : function(xmlBody) {\n\n var parser = new DOMParser();\n var doc = parser.parseFromString(xmlBody, \"application/xml\");\n\n var resolver = function(foo) {\n var ii;\n for(ii in this.xmlNamespaces) {\n if (this.xmlNamespaces[ii] === foo) {\n return ii;\n }\n }\n }.bind(this);\n\n var responseIterator = doc.evaluate('/d:multistatus/d:response', doc, resolver, XPathResult.ANY_TYPE, null);\n\n var result = [];\n var responseNode = responseIterator.iterateNext();\n\n while(responseNode) {\n\n var response = {\n href : null,\n propStat : []\n };\n\n response.href = doc.evaluate('string(d:href)', responseNode, resolver, XPathResult.ANY_TYPE, null).stringValue;\n\n var propStatIterator = doc.evaluate('d:propstat', responseNode, resolver, XPathResult.ANY_TYPE, null);\n var propStatNode = propStatIterator.iterateNext();\n\n while(propStatNode) {\n var propStat = {\n status : doc.evaluate('string(d:status)', propStatNode, resolver, XPathResult.ANY_TYPE, null).stringValue,\n properties : {},\n };\n\n var propIterator = doc.evaluate('d:prop/*', propStatNode, resolver, XPathResult.ANY_TYPE, null);\n\n var propNode = propIterator.iterateNext();\n while(propNode) {\n var content = this._parsePropNode(propNode);\n propStat.properties['{' + propNode.namespaceURI + '}' + propNode.localName] = content;\n propNode = propIterator.iterateNext();\n\n }\n response.propStat.push(propStat);\n propStatNode = propStatIterator.iterateNext();\n\n\n }\n\n result.push(response);\n responseNode = responseIterator.iterateNext();\n\n }\n\n return result;\n\n },\n\n /**\n * Takes a relative url, and maps it to an absolute url, using the baseUrl\n *\n * @param {string} url\n * @return {string}\n */\n resolveUrl : function(url) {\n\n // Note: this is rudamentary.. not sure yet if it handles every case.\n if (/^https?:\\/\\//i.test(url)) {\n // absolute\n return url;\n }\n\n var baseParts = this.parseUrl(this.baseUrl);\n if (url.charAt('/')) {\n // Url starts with a slash\n return baseParts.root + url;\n }\n\n // Url does not start with a slash, we need grab the base url right up until the last slash.\n var newUrl = baseParts.root + '/';\n if (baseParts.path.lastIndexOf('/')!==-1) {\n newUrl = newUrl = baseParts.path.subString(0, baseParts.path.lastIndexOf('/')) + '/';\n }\n newUrl+=url;\n return url;\n\n },\n\n /**\n * Parses a url and returns its individual components.\n *\n * @param {String} url\n * @return {Object}\n */\n parseUrl : function(url) {\n\n var parts = url.match(/^(?:([A-Za-z]+):)?(\\/{0,3})([0-9.\\-A-Za-z]+)(?::(\\d+))?(?:\\/([^?#]*))?(?:\\?([^#]*))?(?:#(.*))?$/);\n var result = {\n url : parts[0],\n scheme : parts[1],\n host : parts[3],\n port : parts[4],\n path : parts[5],\n query : parts[6],\n fragment : parts[7],\n };\n result.root =\n result.scheme + '://' +\n result.host +\n (result.port ? ':' + result.port : '');\n\n return result;\n\n },\n\n parseClarkNotation : function(propertyName) {\n\n var result = propertyName.match(/^{([^}]+)}(.*)$/);\n if (!result) {\n return;\n }\n\n return {\n name : result[2],\n namespace : result[1]\n };\n\n }\n\n};\n\nmodule.exports = {\n dav,\n Client: dav.Client,\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\nfieldset[data-v-2c0ecaf9] {\n\ttext-align: center;\n}\ninput[type=submit][data-v-2c0ecaf9] {\n\tmargin-top: 20px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/UpdatePassword.vue\"],\"names\":[],\"mappings\":\";AAmIA;CACA,kBAAA;AACA;AAEA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.8';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","/* global globalThis */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n // https://mathiasbynens.be/notes/globalthis\n (function () {\n if (typeof globalThis === 'object') return;\n Object.prototype.__defineGetter__('__magic__', function () {\n return this;\n });\n __magic__.globalThis = __magic__; // eslint-disable-line no-undef\n delete Object.prototype.__magic__;\n })();\n\n var $Handlebars = globalThis.Handlebars;\n\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (globalThis.Handlebars === Handlebars) {\n globalThis.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOzs7QUFHbEMsR0FBQyxZQUFXO0FBQ1YsUUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsT0FBTztBQUMzQyxVQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxZQUFXO0FBQ3hELGFBQU8sSUFBSSxDQUFDO0tBQ2IsQ0FBQyxDQUFDO0FBQ0gsYUFBUyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDakMsV0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztHQUNuQyxDQUFBLEVBQUcsQ0FBQzs7QUFFTCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDOzs7QUFHMUMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDeEMsZ0JBQVUsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQ3JDO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGdsb2JhbFRoaXMgKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKEhhbmRsZWJhcnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2dsb2JhbHRoaXNcbiAgKGZ1bmN0aW9uKCkge1xuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybjtcbiAgICBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oJ19fbWFnaWNfXycsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSk7XG4gICAgX19tYWdpY19fLmdsb2JhbFRoaXMgPSBfX21hZ2ljX187IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5fX21hZ2ljX187XG4gIH0pKCk7XG5cbiAgY29uc3QgJEhhbmRsZWJhcnMgPSBnbG9iYWxUaGlzLkhhbmRsZWJhcnM7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgSGFuZGxlYmFycy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuSGFuZGxlYmFycyA9PT0gSGFuZGxlYmFycykge1xuICAgICAgZ2xvYmFsVGhpcy5IYW5kbGViYXJzID0gJEhhbmRsZWJhcnM7XG4gICAgfVxuICAgIHJldHVybiBIYW5kbGViYXJzO1xuICB9O1xufVxuIl19\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.reset-password-form[data-v-759a0fdd]{display:flex;flex-direction:column;gap:.5rem;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/ResetPassword.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.reset-password-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: .5rem;\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// 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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2710\":\"0c2e26891ac1c05900e0\",\"4471\":\"9b3c8620f038b7593241\",\"7004\":\"da5a822695a273d4d2eb\",\"7394\":\"5b773f16893ed80e0246\",\"7859\":\"cd6f48c919ca307639eb\",\"8127\":\"b62d5791b2d7256af4a8\",\"8453\":\"0ad2c9a35eee895d5980\",\"9553\":\"c8ce7bd4445f06a11ae6\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1418;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1418: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(24050)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","_interopRequireDefault","obj","__esModule","exports","registerDefaultHelpers","instance","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","helpers","hooks","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","runtimeVersions","REVISION_CHANGES","compilerVersions","_exception2","template","templateSpec","env","main","decorator","main_d","VM","compiler","templateWasPrecompiledWithCompilerV7","container","strict","name","loc","lookupProperty","parent","propertyName","result","Object","prototype","hasOwnProperty","call","_internalProtoAccess","resultIsAllowed","protoAccessControl","lookup","depths","len","length","i","lambda","current","context","escapeExpression","Utils","invokePartial","partial","options","hash","extend","ids","resolvePartial","this","extendedOptions","compile","partials","compilerOptions","indent","lines","split","l","join","fn","ret","programs","program","data","declaredBlockParams","blockParams","programWrapper","wrapProgram","value","depth","_parent","mergeIfNeeded","param","common","nullContext","seal","noop","arguments","undefined","_setup","useData","createFrame","root","initData","useBlockParams","useDepths","concat","executeDecorators","isTop","decorators","mergedHelpers","keys","forEach","helper","_internalWrapHelper","wrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","createProtoAccessControl","keepHelperInHelpers","allowCallsToHelperMissing","_helpers","_child","currentPartialBlock","contextPath","partialBlock","Function","newObj","key","_interopRequireWildcard","prog","currentDepths","props","___CSS_LOADER_EXPORT___","push","module","id","errorProps","Exception","message","node","line","endLineNumber","column","endColumn","start","end","tmp","Error","constructor","idx","captureStackTrace","lineNumber","defineProperty","enumerable","nop","registerHelper","SafeString","string","toString","toHTML","base","_handlebarsSafeString2","_handlebarsException2","runtime","_handlebarsNoConflict2","create","hb","HandlebarsEnvironment","spec","inst","self","global","_","$","Backbone","previousBackbone","slice","Array","VERSION","noConflict","emulateHTTP","emulateJSON","_listening","Events","eventSplitter","eventsApi","iteratee","events","callback","opts","names","test","on","_events","onApi","ctx","listening","_listeners","interop","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","Listening","error","tryCatchOn","handlers","count","e","off","offApi","listeners","stopListening","isEmpty","remaining","j","handler","_callback","cleanup","once","onceMap","bind","listenToOnce","map","offer","apply","trigger","Math","max","args","triggerApi","objEvents","allEvents","all","triggerEvents","ev","a1","a2","a3","listener","unbind","Model","attributes","attrs","preinitialize","cid","cidPrefix","collection","parse","defaults","set","changed","initialize","validationError","idAttribute","toJSON","clone","sync","get","attr","escape","has","matches","val","_validate","unset","silent","changes","changing","_changing","_previousAttributes","prev","isEqual","prevId","_pending","clear","hasChanged","changedAttributes","diff","old","previous","previousAttributes","fetch","model","success","resp","serverAttrs","wrapError","save","wait","validate","method","isNew","patch","xhr","destroy","defer","url","urlError","replace","encodeURIComponent","isValid","Collection","models","comparator","_reset","reset","setOptions","add","remove","merge","addOptions","splice","array","insert","at","min","tail","singular","isArray","removed","_removeModels","added","merged","_isModel","toAdd","toMerge","toRemove","modelMap","sort","sortable","sortAttr","isString","existing","_prepareModel","_addReference","orderChanged","some","m","index","_removeReference","previousModels","pop","unshift","shift","_byId","modelId","where","first","findWhere","isFunction","sortBy","pluck","callbackOpts","_forwardPristineError","values","CollectionIterator","ITERATOR_VALUES","ITERATOR_KEYS","entries","ITERATOR_KEYSVALUES","indexOf","_onModelEvent","event","$$iterator","Symbol","iterator","kind","_collection","_kind","_index","next","done","View","pick","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","find","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","undelegate","_createElement","document","createElement","className","_setAttributes","addUnderscoreMethods","Class","methods","attribute","each","cb","defaultVal","addMethod","isObject","modelMatcher","matcher","collect","reduce","foldl","inject","reduceRight","foldr","detect","filter","select","reject","every","any","include","includes","contains","invoke","toArray","size","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","chain","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","pairs","invert","omit","config","Base","mixin","mappings","functions","memo","type","methodMap","params","dataType","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","decodeURIComponent","History","checkUrl","window","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","path","charAt","getFragment","_usePushState","_wantsHashChange","_trailingSlash","trailingSlash","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","notfound","decodedFragment","title","assign","_updateHash","protoProps","staticProps","child","__super__","_debug","factory","components","ArrowRight","NcButton","String","default","t","valueLoading","loading","Boolean","required","invertedColors","styleTagTransform","setAttributes","domAPI","insertStyleElement","locals","_vm","_c","_self","$event","$emit","scopedSlots","_u","staticClass","proxy","_v","_s","computed","userNameInputLengthIs255","user","userInputHelperText","LoginButton","NcCheckboxRadioSwitch","NcPasswordField","NcTextField","NcNoteCard","mixins","AuthMixin","username","redirectUrl","errors","messages","throttleDelay","Number","autoCompleteAllowed","remembermeAllowed","directLogin","emailStates","setup","headlineText","productName","OC","theme","sanitize","loginTimeout","loadState","requestToken","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","timezoneOffset","Date","getTimezoneOffset","password","rememberme","visible","resetFormTimeout","debounce","handleResetForm","isError","invalidPassword","userDisabled","errorLabel","apacheAuthFailed","csrfCheckFailed","internalException","loadingIcon","imagePath","loginActionUrl","generateUrl","emailEnabled","state","loginText","watch","mounted","$refs","inputField","input","focus","updateUsername","submit","preventDefault","ref","_e","_l","class","staticStyle","shake","$$v","expression","domProps","_browserSupportsWebAuthnInternals","stubThis","globalThis","PublicKeyCredential","code","cause","super","configurable","writable","createNewAbortSignal","controller","abortError","abort","newController","AbortController","signal","cancelCeremony","buffer","bytes","Uint8Array","str","charCode","fromCharCode","btoa","base64URLString","base64","padLength","padded","padEnd","binary","atob","ArrayBuffer","charCodeAt","_browserSupportsWebAuthnAutofillInternals","descriptor","transports","attachments","attachment","emits","fillColor","_b","$attrs","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","NoValidCredentials","defineComponent","InformationIcon","LockOpenIcon","NcEmptyContent","isHttps","isLocalhost","supportsWebauthn","browserSupportsWebAuthn","validCredentials","authenticate","loginForm","checkValidity","logger","debug","async","loginName","Axios","post","allowCredentials","optionsJSON","challenge","console","warn","useBrowserAutofill","verifyBrowserAutofillInput","publicKey","getOptions","Promise","resolve","globalPublicKeyCredential","isConditionalMediationAvailable","browserSupportsWebAuthnAutofill","querySelectorAll","mediation","credential","navigator","credentials","err","AbortSignal","effectiveDomain","hostname","rpId","identifyAuthenticationError","rawId","response","userHandle","authenticatorData","clientDataJSON","signature","clientExtensionResults","getClientExtensionResults","authenticatorAttachment","startWebauthnAuthentication","startAuthentication","completeAuthentication","changeUsername","authData","finishAuthentication","then","defaultRedirectUrl","catch","_setupProxy","resetPasswordLink","axios","status","resetPasswordTarget","encrypted","proceed","encryption","msg","directives","rawName","target","composing","_i","$$a","$$el","$$c","checked","$$i","warning","query","queryString","search","localStorage","sessionStorage","indexedDBList","indexedDB","databases","deleteDatabase","wipeBrowserStorages","LoginForm","PasswordLessLoginForm","ResetPassword","UpdatePassword","passwordlessLogin","resetPassword","canResetPassword","resetPasswordUser","direct","hasPasswordless","countAlternativeLogins","alternativeLogins","protocol","hideLoginForm","passwordResetFinished","alternativeLogin","isAdmin","_oc_isadmin","appConfig","oc_appconfig","dynamicSlideToggleEnabled","Apps","enableDynamicSlideToggle","removeClass","show","hide","addClass","_oc_appswebroots","update","delete","read","parsePropFindResult","davProperties","subResult","propStat","properties","propKey","parseIdFromLocation","queryPos","substr","parts","isSuccessStatus","callPropPatch","client","headers","propPatch","changedProp","convertModelAttributesToDavProperties","VendorBackbone","davCall","dav","Client","baseUrl","xmlNamespaces","resolveUrl","requesttoken","propFind","propsMapping","results","callPropFind","request","callMkCol","responseJson","locationHeader","getResponseHeader","callMethod","davSync","isCollection","hasInnerCollection","usePUT","_oc_config","rawUid","getElementsByTagName","getAttribute","displayName","currentUser","_oc_debug","Dialogs","YES_NO_BUTTONS","OK_BUTTONS","FILEPICKER_TYPE_CHOOSE","FILEPICKER_TYPE_MOVE","FILEPICKER_TYPE_COPY","FILEPICKER_TYPE_COPY_MOVE","FILEPICKER_TYPE_CUSTOM","alert","text","modal","OK_BUTTON","info","confirm","confirmDestructive","buttons","DialogBuilder","setName","setText","setButtons","label","variant","clicked","_getLegacyButtons","confirmHtml","setHTML","prompt","spawnDialog","defineAsyncComponent","inputName","isPassword","filepicker","multiselect","mimetype","_modal","FilePickerType","Choose","legacyCallback","startsWith","nodes","builder","getFilePickerBuilder","button","addButton","defaultButton","setButtonFactory","displayname","basename","multiSelect","file","CopyMove","Copy","icon","IconCopy","Move","setMimeTypeFilter","setFilter","fileid","mime","mtime","getTime","permissions","etag","hasPreview","mountType","quotaAvailableBytes","sharePermissions","nodeToLegacyFile","allowDirectories","allowDirectoryChooser","setMultiSelect","startAt","content","dialogType","allowHtml","setSeverity","dialog","_clicked","buttonList","cancel","_fileexistsshown","fileexists","original","replacement","dialogDeferred","addConflict","$conflicts","$conflict","$originalDiv","$replacementDiv","Util","humanFileSize","formatDate","lastModified","directory","urlSpec","x","y","c","forceIcon","previewpath","Files","generatePreviewUrl","css","FileReader","reader","onload","blob","Blob","URL","webkitURL","originalUrl","createObjectURL","image","Image","img","canvas","width","height","getContext","drawImage","W","H","W2","H2","round","getImageData","img2","data2","ratio_w","ratio_h","ratio_w_half","ceil","ratio_h_half","x2","weight","weights","weights_alpha","gx_r","gx_g","gx_b","gx_a","center_y","yy","floor","dy","abs","center_x","w0","xx","dx","w","sqrt","clearRect","putImageData","resampleHermite","toDataURL","crop","readAsArrayBuffer","getCroppedPreview","MimeType","getIconUrl","checkboxId","append","prop","dialogName","dialogId","n","children","_getFileExistsTemplate","$tmpl","$dlg","octemplate","dialog_name","allnewfiles","allexistingfiles","why","what","buttonlist","classes","click","onCancel","ocdialog","onContinue","closeOnEscape","closeButton","$primaryButton","closest","updatePrimaryButton","checkedCount","$checkbox","fail","promise","$fileexistsTemplate","filePath","tmpl","getRequestToken","dataset","OCEventSource","joinChar","dataStr","typelessListeners","closed","useFallBack","EventSource","iframeId","iframeCount","fallBackSources","appendChild","source","onmessage","listen","fallBackCallBack","lastLength","load","loadTranslations","register","_unregister","unregister","translate","translatePlural","Handlebars","app","currentMenu","currentMenuToggle","hideMenus","complete","lastMenu","slideUp","iconCache","Map","mimeType","MimeTypeList","aliases","gotIcon","folder","themes","getRootUrl","getMimeTypeIcon","files","OCA","Theming","cacheBuster","clearIconCache","startSaving","startAction","querySelector","HTMLElement","textContent","classList","getAnimations","animation","finishedSaving","finishedAction","finishedSuccess","finishedError","setTimeout","animate","opacity","duration","fill","updatableNotification","getDefaultNotificationFunction","setDefault","$row","toastify","hideToast","showHtml","html","isHTML","timeout","TOAST_PERMANENT_TIMEOUT","toast","showMessage","toastElement","escapeHTML","showUpdate","showTemporary","TOAST_DEFAULT_TIMEOUT","isHidden","requiresPasswordConfirmation","isPasswordConfirmationRequired","requirePasswordConfirmation","rejectCallback","confirmPassword","_plugins","targetName","plugin","plugins","getPlugins","attach","targetObject","detach","_cachedGroups","rebuildNavigation","generateOcsUrl","ocs","meta","statuscode","emit","apps","dispatchEvent","Event","setupGroupsSelect","$elements","extraOptions","groups","group","excludeAdmins","select2","placeholder","allowClear","multiple","toggleSelect","separator","initSelection","selection","groupId","formatResult","formatSelection","escapeMarkup","Notification","_theme","debug_1","hasRequiredDebug","constants","hasRequiredConstants","requireDebug","process","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","freeze","DEFAULT","HIDDEN","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","major_1","hasRequiredMajor","parse_1","hasRequiredParse","valid_1","hasRequiredValid","re","requireSemver","safeRe","re2","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","loose","emptyOpts","requireParseOptions","compareIdentifiers","numeric","b2","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","version","includePrerelease","TypeError","trim","LOOSE","FULL","raw","major","minor","prerelease","num","format","compare","other","compareMain","comparePre","compareBuild","inc","release","identifier","identifierBase","isNaN","requireMajor","throwErrors","er","requireParse","v","requireValid","UploadFromDevice","CreateNew","Other","ReservedName","Character","Extension","humanList","humanListBinary","Name","Modified","Size","_handlers","_pushState","strParams","buildQueryString","userAgent","toLowerCase","parseInt","patterns","pattern","ii","stroke","removeAttribute","setAttribute","replaceState","_cancelPop","addOnPopStateHandler","_parseHashQuery","pos","_decodeQuery","parseUrlQuery","parseQueryString","_onPopState","chunkify","tz","skipSmallSizes","binaryPrefixes","base1000","order","log","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","computerFileSize","s","isFinite","b","k","kb","mb","gb","g","tb","pb","p","timestamp","TESTING","moment","relativeModifiedDate","fromNow","getScrollBarWidth","_scrollBarWidth","inner","outer","position","top","left","visibility","overflow","w1","offsetWidth","w2","clientWidth","stripTime","date","getFullYear","getMonth","getDate","naturalSortCompare","a","aa","bb","aNum","bNum","localeCompare","getLanguage","waitFor","internalCallback","isCookieSetToValue","cookies","cookie","webroot","_oc_webroot","coreApps","menuSpeed","PERMISSION_ALL","PERMISSION_CREATE","PERMISSION_DELETE","PERMISSION_NONE","PERMISSION_READ","PERMISSION_SHARE","PERMISSION_UPDATE","TAG_FAVORITE","appswebroots","Config","dialogs","isUserAdmin","L10N","registerXHRForErrorProcessing","getCapabilities","realGetCapabilities","registerMenu","$toggle","$menuEl","toggle","headerMenu","isClickableElement","is","slideToggle","showMenu","unregisterMenu","encodePath","dirname","isSamePath","joinPaths","getCanonicalLocale","getLocale","URLSearchParams","fromEntries","PasswordConfirmation","Plugins","Settings","generateFilePath","getRootPath","linkTo","linkToOCS","service","ocsVersion","linkToRemote","generateRemoteUrl","linkToRemoteBase","realGetRootUrl","subscribe","L10n","Vue","Nextcloud","LoginView","$mount","_utils","inverse","appendContextPath","webpackContext","req","webpackContextResolve","__webpack_require__","o","field","level","lookupLevel","levelMap","_len","_key","priorKey","execIteration","newContext","it","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","whitelist","_createNewLookupObject","createNewLookupObject","allowedProtoProperties","defaultValue","allowProtoPropertiesByDefault","allowedProtoMethods","allowProtoMethodsByDefault","protoAccessControlForType","loggedProperties","_logger2","logUnexpecedPropertyAccessOnce","checkWhiteList","resetLoggedProperties","transformOptionsFn","registerDefaultDecorators","_decoratorsInline2","registerDecorator","ch","_XML_CHAR_MAP","userName","namespace","property","parseClarkNotation","_renderPropSet","propName","propValue","_escapeXml","mkcol","responseType","xhrProvider","onProgress","upload","send","fulfill","onreadystatechange","readyState","resultBody","parseMultiStatus","ontimeout","XMLHttpRequest","_parsePropNode","propNode","childNodes","subNodes","nodeType","xmlBody","doc","DOMParser","parseFromString","resolver","foo","responseIterator","evaluate","XPathResult","ANY_TYPE","responseNode","iterateNext","stringValue","propStatIterator","propStatNode","propIterator","namespaceURI","localName","baseParts","parseUrl","subString","scheme","host","port","conditional","includeZero","possible","badChars","escapeChar","object","frame","chr","_decorators","objectType","unregisterHelper","registerPartial","unregisterPartial","unregisterDecorator","resetLoggedPropertyAccesses","sources","__defineGetter__","__magic__","$Handlebars","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","r","getter","d","definition","f","chunkId","promises","u","script","needAttach","scripts","charset","nc","onScriptComplete","onerror","clearTimeout","doneFns","parentNode","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","toUpperCase","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core-main.js.map b/dist/core-main.js.map index c80683c5b71..50be571ee5b 100644 --- a/dist/core-main.js.map +++ b/dist/core-main.js.map @@ -1 +1 @@ -{"version":3,"file":"core-main.js?v=2e08809560e3cb48f44e","mappings":"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,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAS,EAAS,IAAS,EAAS,IAAS,EAAS,IAAS,EAAS,IAAS,EAAS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mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINJ,IAAK,CACHxV,IAAK,EACL4V,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mE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AQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,KACR,EAAQ,OACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EA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","sources":["webpack:///nextcloud/node_modules/browserify-sign/browser/index.js","webpack:///nextcloud/node_modules/core-js/modules/web.queue-microtask.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.is-sealed.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.sort.js","webpack:///nextcloud/node_modules/browserify-aes/modes/index.js","webpack:///nextcloud/node_modules/core-js/internals/well-known-symbol.js","webpack:///nextcloud/node_modules/core-js/internals/parse-json-string.js","webpack:///nextcloud/node_modules/core-js/internals/to-string.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///nextcloud/node_modules/core-js/internals/get-alphabet-option.js","webpack:///nextcloud/node_modules/core-js/internals/perform.js","webpack:///nextcloud/node_modules/browserify-aes/browser.js","webpack:///nextcloud/node_modules/core-js/internals/array-species-create.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///nextcloud/node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack:///nextcloud/node_modules/core-js/internals/object-is-prototype-of.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.to-iso-string.js","webpack:///nextcloud/node_modules/core-js/internals/get-iterator-direct.js","webpack:///nextcloud/node_modules/core-js/internals/get-async-iterator.js","webpack:///nextcloud/core/src/components/ContactsMenu/ContactMenuEntry.vue","webpack:///nextcloud/core/src/components/ContactsMenu/ContactMenuEntry.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/ContactsMenu/ContactMenuEntry.vue?c2c2","webpack://nextcloud/./core/src/components/ContactsMenu/ContactMenuEntry.vue?f2c1","webpack://nextcloud/./core/src/components/ContactsMenu/ContactMenuEntry.vue?646c","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/views/ContactsMenu.vue","webpack:///nextcloud/core/src/views/ContactsMenu.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/views/ContactsMenu.vue?1bb7","webpack://nextcloud/./core/src/views/ContactsMenu.vue?1de5","webpack:///nextcloud/core/src/services/ContactsMenuService.ts","webpack:///nextcloud/core/src/components/AppMenu.vue","webpack:///nextcloud/core/src/components/AppMenuIcon.vue","webpack:///nextcloud/core/src/components/AppMenuIcon.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/AppMenuIcon.vue?88b0","webpack://nextcloud/./core/src/components/AppMenuIcon.vue?1caa","webpack:///nextcloud/core/src/components/AppMenuEntry.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/core/src/components/AppMenuEntry.vue","webpack://nextcloud/./core/src/components/AppMenuEntry.vue?7981","webpack://nextcloud/./core/src/components/AppMenuEntry.vue?f835","webpack://nextcloud/./core/src/components/AppMenuEntry.vue?d04a","webpack:///nextcloud/core/src/components/AppMenu.vue?vue&type=script&lang=ts","webpack://nextcloud/./core/src/components/AppMenu.vue?e08a","webpack://nextcloud/./core/src/components/AppMenu.vue?95cf","webpack:///nextcloud/core/src/views/AccountMenu.vue","webpack:///nextcloud/core/src/components/AccountMenu/AccountMenuEntry.vue","webpack:///nextcloud/core/src/components/AccountMenu/AccountMenuEntry.vue?vue&type=script&lang=ts","webpack://nextcloud/./core/src/components/AccountMenu/AccountMenuEntry.vue?a9ed","webpack://nextcloud/./core/src/components/AccountMenu/AccountMenuEntry.vue?d55f","webpack:///nextcloud/core/src/components/AccountMenu/AccountMenuProfileEntry.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/QrcodeScan.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/QrcodeScan.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/QrcodeScan.vue?7573","webpack:///nextcloud/node_modules/vue-material-design-icons/QrcodeScan.vue?vue&type=template&id=7489e3c8","webpack:///nextcloud/core/src/components/AccountMenu/AccountQRLoginDialog.vue","webpack:///nextcloud/core/src/components/AccountMenu/AccountQRLoginDialog.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/AccountMenu/AccountQRLoginDialog.vue?9c28","webpack://nextcloud/./core/src/components/AccountMenu/AccountQRLoginDialog.vue?6a6f","webpack:///nextcloud/core/src/components/AccountMenu/AccountMenuProfileEntry.vue?vue&type=script&lang=ts","webpack://nextcloud/./core/src/components/AccountMenu/AccountMenuProfileEntry.vue?1cd5","webpack:///nextcloud/core/src/views/AccountMenu.vue?vue&type=script&lang=ts","webpack://nextcloud/./core/src/views/AccountMenu.vue?1f03","webpack://nextcloud/./core/src/views/AccountMenu.vue?8823","webpack:///nextcloud/core/src/OC/admin.js","webpack:///nextcloud/core/src/OC/appconfig.js","webpack:///nextcloud/core/src/OC/apps.js","webpack:///nextcloud/core/src/OC/appswebroots.js","webpack:///nextcloud/core/src/OC/backbone-webdav.js","webpack:///nextcloud/core/src/OC/backbone.js","webpack:///nextcloud/core/src/OC/config.js","webpack:///nextcloud/core/src/OC/currentuser.js","webpack:///nextcloud/core/src/OC/debug.js","webpack:///nextcloud/core/src/OC/dialogs.js","webpack:///nextcloud/core/src/OC/requesttoken.ts","webpack:///nextcloud/core/src/OC/eventsource.js","webpack:///nextcloud/core/src/OC/l10n.js","webpack:///nextcloud/core/src/OC/menu.js","webpack:///nextcloud/core/src/OC/constants.js","webpack:///nextcloud/core/src/OC/mimeType.js","webpack:///nextcloud/core/src/OC/msg.ts","webpack:///nextcloud/core/src/OC/notification.js","webpack:///nextcloud/core/src/OC/password-confirmation.js","webpack:///nextcloud/core/src/OC/plugins.js","webpack:///nextcloud/core/src/OC/settings.js","webpack:///nextcloud/core/src/OC/theme.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/core/src/OC/util.js","webpack:///nextcloud/core/src/OC/util-history.js","webpack:///nextcloud/core/src/OC/webroot.js","webpack:///nextcloud/core/src/OC/index.js","webpack:///nextcloud/core/src/OC/capabilities.js","webpack:///nextcloud/core/src/OC/query-string.ts","webpack:///nextcloud/core/src/OC/routing.js","webpack:///nextcloud/core/src/session-heartbeat.ts","webpack:///nextcloud/core/src/utils/ClipboardFallback.ts","webpack:///nextcloud/core/src/utils/xhr-request.js","webpack:///nextcloud/core/src/init.js","webpack:///nextcloud/core/src/components/MainMenu.js","webpack:///nextcloud/core/src/components/UserMenu.js","webpack:///nextcloud/core/src/components/ContactsMenu.js","webpack:///nextcloud/core/src/OCP/accessibility.js","webpack:///nextcloud/core/src/OCP/appconfig.ts","webpack:///nextcloud/core/src/OCP/collaboration.js","webpack:///nextcloud/core/src/OCP/comments.ts","webpack:///nextcloud/core/src/OCP/loader.js","webpack:///nextcloud/core/src/OCP/toast.js","webpack:///nextcloud/core/src/OCP/index.js","webpack://nextcloud/./node_modules/jquery-ui-dist/jquery-ui.css?17d5","webpack://nextcloud/./node_modules/jquery-ui-dist/jquery-ui.theme.css?4a7b","webpack://nextcloud/./node_modules/select2/select2.css?b214","webpack://nextcloud/./node_modules/strengthify/strengthify.css?eaf5","webpack:///nextcloud/core/src/globals.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Functions/a11y.mjs","webpack:///nextcloud/core/src/OCA/index.js","webpack:///nextcloud/core/src/jquery/avatar.js","webpack:///nextcloud/core/src/jquery/exists.js","webpack:///nextcloud/core/src/jquery/filterattr.js","webpack:///nextcloud/core/src/jquery/ocdialog.js","webpack:///nextcloud/core/src/jquery/octemplate.js","webpack:///nextcloud/core/src/jquery/placeholder.js","webpack:///nextcloud/core/src/jquery/requesttoken.js","webpack:///nextcloud/core/src/jquery/selectrange.js","webpack:///nextcloud/core/src/jquery/showpassword.js","webpack:///nextcloud/core/src/jquery/ui-fixes.js","webpack://nextcloud/./core/src/jquery/css/jquery-ui-fixes.scss?a4c2","webpack://nextcloud/./core/src/jquery/css/jquery.ocdialog.scss?5718","webpack:///nextcloud/core/src/jquery/index.js","webpack:///nextcloud/core/src/main.js","webpack:///nextcloud/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.filter.js","webpack:///nextcloud/node_modules/core-js/internals/is-integral-number.js","webpack:///nextcloud/node_modules/core-js/modules/web.url.can-parse.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.iterator.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/sha/256.js","webpack:///nextcloud/node_modules/core-js/internals/species-constructor.js","webpack:///nextcloud/node_modules/core-js/internals/object-create.js","webpack:///nextcloud/node_modules/pbkdf2/lib/default-encoding.js","webpack:///nextcloud/node_modules/core-js/internals/get-substitution.js","webpack:///nextcloud/core/src/jquery/css/jquery.ocdialog.scss","webpack:///nextcloud/node_modules/core-js/modules/es.number.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/web.atob.js","webpack:///nextcloud/node_modules/jquery-ui-dist/jquery-ui.css","webpack:///nextcloud/node_modules/core-js/internals/array-buffer-is-detached.js","webpack:///nextcloud/node_modules/core-js/modules/web.url.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.js","webpack:///nextcloud/node_modules/des.js/lib/des/cbc.js","webpack:///nextcloud/node_modules/core-js/internals/internal-metadata.js","webpack:///nextcloud/node_modules/core-js/internals/same-value.js","webpack:///nextcloud/node_modules/core-js/internals/environment-webkit-version.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///nextcloud/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///nextcloud/node_modules/core-js/modules/es.data-view.set-float16.js","webpack:///nextcloud/node_modules/core-js/internals/document-create-element.js","webpack:///nextcloud/node_modules/core-js/modules/es.aggregate-error.cause.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.f16round.js","webpack:///nextcloud/node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///nextcloud/node_modules/hash-base/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///nextcloud/node_modules/diffie-hellman/lib/generatePrime.js","webpack:///nextcloud/node_modules/core-js/modules/es.weak-set.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.entries.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.bold.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.search.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.sign.js","webpack:///nextcloud/node_modules/core-js/modules/es.error.is-error.js","webpack:///nextcloud/node_modules/core-js/internals/add-to-unscopables.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.constructor.js","webpack:///nextcloud/node_modules/core-js/internals/create-property-descriptor.js","webpack:///nextcloud/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///nextcloud/node_modules/regenerator-runtime/runtime.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.for-each.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///nextcloud/node_modules/core-js/internals/math-log1p.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.race.js","webpack:///nextcloud/node_modules/core-js/internals/environment-is-webos-webkit.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.lookup-setter.js","webpack:///nextcloud/node_modules/core-js/internals/array-from-async.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.clz32.js","webpack:///nextcloud/node_modules/core-js/internals/array-last-index-of.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.last-index-of.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.map.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.lookup-getter.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.finally.js","webpack:///nextcloud/node_modules/core-js/modules/es.uint8-array.to-base64.js","webpack:///nextcloud/node_modules/core-js/internals/iterator-close.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/base/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.to-reversed.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.to-fixed.js","webpack:///nextcloud/node_modules/core-js/modules/es.data-view.get-float16.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///nextcloud/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///nextcloud/node_modules/core-js/internals/function-name.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.constructor.js","webpack:///nextcloud/node_modules/core-js/internals/set-to-string-tag.js","webpack:///nextcloud/node_modules/core-js/internals/is-symbol.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.find-last.js","webpack:///nextcloud/node_modules/core-js/internals/promise-constructor-detection.js","webpack:///nextcloud/node_modules/core-js/internals/proxy-accessor.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.log2.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.starts-with.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.with.js","webpack:///nextcloud/node_modules/core-js/modules/es.array-buffer.slice.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.big.js","webpack:///nextcloud/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///nextcloud/node_modules/jquery-ui-dist/jquery-ui.theme.css","webpack:///nextcloud/node_modules/core-js/modules/es.array.find-last-index.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.some.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.unshift.js","webpack:///nextcloud/node_modules/core-js/modules/web.self.js","webpack:///nextcloud/node_modules/core-js/internals/environment-ff-version.js","webpack:///nextcloud/node_modules/core-js/internals/environment-is-ie-or-edge.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///nextcloud/node_modules/core-js/internals/is-possible-prototype.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///nextcloud/node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///nextcloud/node_modules/core-js/modules/web.url-search-params.delete.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.with-resolvers.js","webpack:///nextcloud/node_modules/diffie-hellman/lib/dh.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack:///nextcloud/node_modules/brorand/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.some.js","webpack:///nextcloud/node_modules/to-buffer/index.js","webpack:///nextcloud/node_modules/diffie-hellman/browser.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack:///nextcloud/node_modules/core-js/modules/web.set-interval.js","webpack:///nextcloud/node_modules/core-js/internals/math-fround.js","webpack:///nextcloud/node_modules/core-util-is/lib/util.js","webpack:///nextcloud/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:///nextcloud/node_modules/core-js/internals/typed-array-constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.values.js","webpack:///nextcloud/node_modules/core-js/internals/error-stack-clear.js","webpack:///nextcloud/node_modules/core-js/modules/es.error.cause.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.sup.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.prevent-extensions.js","webpack:///nextcloud/node_modules/core-js/internals/collection.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.all.js","webpack:///nextcloud/node_modules/core-js/modules/es.array-buffer.detached.js","webpack:///nextcloud/node_modules/core-js/internals/is-data-descriptor.js","webpack:///nextcloud/node_modules/core-js/modules/es.uint8-array.set-from-base64.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_writable.js","webpack:///nextcloud/node_modules/core-js/internals/try-to-string.js","webpack:///nextcloud/node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.define-getter.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.difference.v2.js","webpack:///nextcloud/node_modules/core-js/internals/to-length.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.at.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.reduce.js","webpack:///nextcloud/node_modules/core-js/internals/queue.js","webpack:///nextcloud/node_modules/core-js/internals/is-big-int-array.js","webpack:///nextcloud/node_modules/core-js/internals/function-apply.js","webpack:///nextcloud/node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.reduce-right.js","webpack:///nextcloud/node_modules/core-js/internals/string-trim-end.js","webpack:///nextcloud/node_modules/core-js/internals/path.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.join.js","webpack:///nextcloud/node_modules/core-js/internals/iterator-create-proxy.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///nextcloud/node_modules/core-js/internals/array-includes.js","webpack:///nextcloud/node_modules/core-js/internals/is-object.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.find.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///nextcloud/node_modules/create-hash/md5.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.unscopables.js","webpack:///nextcloud/node_modules/core-js/modules/es.json.raw-json.js","webpack:///nextcloud/node_modules/core-js/internals/html.js","webpack:///nextcloud/node_modules/core-js/modules/es.uint8-array.to-hex.js","webpack:///nextcloud/node_modules/core-js/internals/async-iterator-close.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.italics.js","webpack:///nextcloud/node_modules/parse-asn1/asn1.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///nextcloud/node_modules/pbkdf2/lib/sync-browser.js","webpack:///nextcloud/node_modules/backbone/backbone.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.includes.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.find-last.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/sha/384.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.concat.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///nextcloud/node_modules/core-js/internals/classof-raw.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.filter.js","webpack:///nextcloud/node_modules/core-js/internals/validate-arguments-length.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///nextcloud/node_modules/core-js/internals/string-html-forced.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.sum-precise.js","webpack:///nextcloud/node_modules/core-js/internals/inherit-if-required.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.to-string.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.from.js","webpack:///nextcloud/node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.iterator.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.code-point-at.js","webpack:///nextcloud/node_modules/core-js/internals/async-from-sync-iterator.js","webpack:///nextcloud/node_modules/parse-asn1/fixProc.js","webpack:///nextcloud/node_modules/sha.js/sha256.js","webpack:///nextcloud/node_modules/core-js/internals/not-a-nan.js","webpack:///nextcloud/node_modules/core-js/internals/a-data-view.js","webpack:///nextcloud/node_modules/core-js/modules/es.data-view.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/web.set-timeout.js","webpack:///nextcloud/node_modules/core-js/internals/error-stack-installable.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.async-disposable-stack.constructor.js","webpack:///nextcloud/node_modules/core-js/internals/object-define-property.js","webpack:///nextcloud/node_modules/core-js/internals/set-size.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.index-of.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///nextcloud/node_modules/core-js/internals/to-indexed-object.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.is-finite.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.replace.js","webpack:///nextcloud/node_modules/core-js/internals/shared.js","webpack:///nextcloud/node_modules/browserify-aes/encrypter.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.parse-int.js","webpack:///nextcloud/node_modules/browserify-aes/ghash.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.to-string.js","webpack:///nextcloud/node_modules/core-js/internals/length-of-array-like.js","webpack:///nextcloud/node_modules/core-js/internals/iterators.js","webpack:///nextcloud/node_modules/sha.js/sha224.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.copy-within.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.sort.js","webpack:///nextcloud/node_modules/core-js/modules/web.url.to-json.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.from-code-point.js","webpack:///nextcloud/node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.exec.js","webpack:///nextcloud/node_modules/sha.js/sha.js","webpack:///nextcloud/node_modules/core-js/internals/native-raw-json.js","webpack:///nextcloud/node_modules/readable-stream/readable-browser.js","webpack:///nextcloud/node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack:///nextcloud/node_modules/core-js/internals/set-is-superset-of.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.match-all.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///nextcloud/node_modules/core-js/internals/an-object.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.concat.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.set.js","webpack:///nextcloud/node_modules/public-encrypt/publicEncrypt.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/hmac.js","webpack:///nextcloud/node_modules/core-js/modules/web.set-immediate.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.drop.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.slice.js","webpack:///nextcloud/node_modules/core-js/modules/es.weak-map.get-or-insert-computed.js","webpack:///nextcloud/node_modules/des.js/lib/des.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.float64-array.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.is.js","webpack:///nextcloud/node_modules/core-js/internals/typed-array-from-same-type-and-list.js","webpack:///nextcloud/node_modules/core-js/modules/es.aggregate-error.js","webpack:///nextcloud/node_modules/browserify-cipher/browser.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///nextcloud/node_modules/buffer-xor/index.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///nextcloud/node_modules/core-js/internals/hidden-keys.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.flat-map.js","webpack:///nextcloud/node_modules/core-js/internals/function-bind.js","webpack:///nextcloud/node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js","webpack:///nextcloud/node_modules/core-js/modules/es.weak-set.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.of.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.split.js","webpack:///nextcloud/node_modules/core-js/internals/this-number-value.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.try.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.find.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.union.v2.js","webpack:///nextcloud/core/src/views/ContactsMenu.vue?vue&type=style&index=0&id=253ecd69&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/core-js/internals/object-to-array.js","webpack:///nextcloud/node_modules/browserify-des/modes.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack:///nextcloud/node_modules/core-js/internals/normalize-string-argument.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.is-integer.js","webpack:///nextcloud/node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.has.js","webpack:///nextcloud/node_modules/sha.js/sha384.js","webpack:///nextcloud/core/src/views/AccountMenu.vue?vue&type=style&index=0&id=6c007912&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/core-js/modules/es.json.stringify.js","webpack:///nextcloud/node_modules/core-js/internals/math-float-round.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///nextcloud/node_modules/process-nextick-args/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.trim-right.js","webpack:///nextcloud/node_modules/core-js/internals/uid.js","webpack:///nextcloud/node_modules/core-js/internals/is-constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///nextcloud/node_modules/core-js/internals/inspect-source.js","webpack:///nextcloud/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.fill.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack:///nextcloud/node_modules/core-js/internals/number-parse-float.js","webpack:///nextcloud/node_modules/core-js/internals/iterator-create-constructor.js","webpack:///nextcloud/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.async-dispose.js","webpack:///nextcloud/node_modules/core-js/internals/object-is-extensible.js","webpack:///nextcloud/node_modules/core-js/internals/an-uint8-array.js","webpack:///nextcloud/node_modules/core-js/modules/es.uint8-array.set-from-hex.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.set.js","webpack:///nextcloud/node_modules/core-js/internals/is-array.js","webpack:///nextcloud/node_modules/core-js/internals/array-set-length.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///nextcloud/node_modules/core-js/internals/array-method-is-strict.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.slice.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack:///nextcloud/node_modules/core-js/internals/own-keys.js","webpack:///nextcloud/node_modules/select2/select2.css","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/node_modules/browserify-sign/browser/sign.js","webpack:///nextcloud/node_modules/core-js/internals/array-from-constructor-and-list.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.blink.js","webpack:///nextcloud/node_modules/core-js/internals/a-constructor.js","webpack:///nextcloud/node_modules/core-js/internals/to-absolute-index.js","webpack:///nextcloud/core/src/components/AccountMenu/AccountQRLoginDialog.vue?vue&type=style&index=0&id=666075e8&prod&lang=scss","webpack:///nextcloud/node_modules/core-js/modules/es.string.pad-end.js","webpack:///nextcloud/node_modules/core-js/internals/ie8-dom-define.js","webpack:///nextcloud/node_modules/core-js/modules/es.map.js","webpack:///nextcloud/node_modules/core-js/internals/new-promise-capability.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///nextcloud/node_modules/browserify-aes/decrypter.js","webpack:///nextcloud/node_modules/core-js/internals/a-map.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.atanh.js","webpack:///nextcloud/node_modules/parse-asn1/certificate.js","webpack:///nextcloud/node_modules/core-js/modules/es.escape.js","webpack:///nextcloud/node_modules/core-js/internals/async-iterator-iteration.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///nextcloud/node_modules/core-js/internals/define-built-in.js","webpack:///nextcloud/node_modules/core-js/internals/classof.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack:///nextcloud/node_modules/core-js/modules/es.data-view.js","webpack:///nextcloud/node_modules/core-js/internals/set-iterate.js","webpack:///nextcloud/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///nextcloud/node_modules/core-js/internals/environment-is-node.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.to-string.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.trim-end.js","webpack:///nextcloud/node_modules/core-js/internals/has-own-property.js","webpack:///nextcloud/node_modules/bn.js/lib/bn.js","webpack:///nextcloud/node_modules/core-js/internals/define-global-property.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.hypot.js","webpack:///nextcloud/node_modules/core-js/internals/environment-v8-version.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.apply.js","webpack:///nextcloud/node_modules/core-js/internals/set-method-get-keys-before-cloning-detection.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.is-nan.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.resolve.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///nextcloud/node_modules/core-js/internals/iterate-simple.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///nextcloud/node_modules/core-js/internals/function-bind-native.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.get.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///nextcloud/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///nextcloud/node_modules/create-hmac/legacy.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.is-well-formed.js","webpack:///nextcloud/node_modules/core-js/modules/web.btoa.js","webpack:///nextcloud/node_modules/core-js/internals/uint8-from-hex.js","webpack:///nextcloud/node_modules/core-js/internals/object-prototype-accessors-forced.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.trim.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.repeat.js","webpack:///nextcloud/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///nextcloud/node_modules/core-js/internals/typed-array-from.js","webpack:///nextcloud/node_modules/minimalistic-assert/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.trim-start.js","webpack:///nextcloud/node_modules/core-js/internals/descriptors.js","webpack:///nextcloud/node_modules/core-js/internals/string-trim.js","webpack:///nextcloud/node_modules/pbkdf2/lib/async.js","webpack:///nextcloud/node_modules/core-js/internals/array-iteration-from-last.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/sha/1.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.push.js","webpack:///nextcloud/node_modules/core-js/internals/get-built-in-prototype-method.js","webpack:///nextcloud/node_modules/core-js/internals/set-union.js","webpack:///nextcloud/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///nextcloud/node_modules/core-js/internals/object-assign.js","webpack:///nextcloud/node_modules/core-js/internals/environment-is-ios-pebble.js","webpack:///nextcloud/node_modules/select2/select2.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.includes.js","webpack:///nextcloud/node_modules/core-js/internals/global-this.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack:///nextcloud/node_modules/core-js/internals/weak-map-helpers.js","webpack:///nextcloud/node_modules/browserify-aes/incr32.js","webpack:///nextcloud/node_modules/core-js/modules/es.uint8-array.from-base64.js","webpack:///nextcloud/node_modules/core-js/modules/es.map.get-or-insert.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.epsilon.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_readable.js","webpack:///nextcloud/node_modules/core-js/modules/es.json.is-raw-json.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:///nextcloud/node_modules/core-js/modules/web.url.parse.js","webpack:///nextcloud/node_modules/core-js/modules/web.url.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/sha.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.strike.js","webpack:///nextcloud/node_modules/browserify-aes/modes/cfb.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.flat.js","webpack:///nextcloud/node_modules/core-js/internals/export.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.int8-array.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///nextcloud/node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///nextcloud/node_modules/core-js/modules/es.array-buffer.is-view.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/ripemd.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///nextcloud/node_modules/browserify-aes/modes/ofb.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/utils.js","webpack:///nextcloud/node_modules/core-js/internals/indexed-object.js","webpack:///nextcloud/node_modules/core-js/modules/es.map.group-by.js","webpack:///nextcloud/node_modules/create-hash/browser.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/api.js","webpack:///nextcloud/node_modules/core-js/internals/whitespaces.js","webpack:///nextcloud/node_modules/core-js/modules/web.url-search-params.has.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/sha/224.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.iterator.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.at.js","webpack:///nextcloud/node_modules/public-encrypt/mgf.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.from.js","webpack:///nextcloud/node_modules/core-js/modules/web.url-search-params.js","webpack:///nextcloud/node_modules/core-js/modules/es.map.constructor.js","webpack:///nextcloud/node_modules/ripemd160/node_modules/hash-base/to-buffer.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.join.js","webpack:///nextcloud/node_modules/core-js/internals/get-iterator-flattenable.js","webpack:///nextcloud/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.sub.js","webpack:///nextcloud/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///nextcloud/node_modules/core-js/modules/es.disposable-stack.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.function.has-instance.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.find-index.js","webpack:///nextcloud/node_modules/core-js/internals/to-object.js","webpack:///nextcloud/node_modules/core-js/internals/math-log10.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.from.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.find.js","webpack:///nextcloud/node_modules/core-js/internals/make-built-in.js","webpack:///nextcloud/node_modules/core-js/internals/number-is-finite.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.substr.js","webpack:///nextcloud/node_modules/core-js/modules/es.async-iterator.async-dispose.js","webpack:///nextcloud/node_modules/browserify-aes/aes.js","webpack:///nextcloud/node_modules/browserify-aes/streamCipher.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.link.js","webpack:///nextcloud/node_modules/core-js/internals/get-iterator-method.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///nextcloud/node_modules/core-js/internals/iterator-define.js","webpack:///nextcloud/node_modules/ripemd160/node_modules/hash-base/index.js","webpack:///nextcloud/core/src/components/AccountMenu/AccountMenuEntry.vue?vue&type=style&index=0&id=bdb908d2&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/core-js/modules/es.promise.reject.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.for-each.js","webpack:///nextcloud/node_modules/public-encrypt/xor.js","webpack:///nextcloud/node_modules/miller-rabin/lib/mr.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.from-async.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.of.js","webpack:///nextcloud/node_modules/browserify-aes/modes/ecb.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.js","webpack:///nextcloud/node_modules/core-js/internals/number-parse-int.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.freeze.js","webpack:///nextcloud/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///nextcloud/node_modules/core-js/internals/object-to-string.js","webpack:///nextcloud/node_modules/randombytes/browser.js","webpack:///nextcloud/node_modules/core-js/internals/math-expm1.js","webpack:///nextcloud/node_modules/strengthify/jquery.strengthify.js","webpack:///nextcloud/node_modules/core-js/internals/string-trim-start.js","webpack:///nextcloud/node_modules/core-js/internals/math-round-ties-to-even.js","webpack:///nextcloud/node_modules/core-js/internals/date-to-primitive.js","webpack:///nextcloud/node_modules/core-js/internals/set-is-subset-of.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.from-entries.js","webpack:///nextcloud/node_modules/core-js/internals/async-iterator-prototype.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.splice.js","webpack:///nextcloud/node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.take.js","webpack:///nextcloud/node_modules/core-js/internals/dom-exception-constants.js","webpack:///nextcloud/node_modules/core-js/modules/es.global-this.js","webpack:///nextcloud/node_modules/core-js/internals/array-buffer-not-detached.js","webpack:///nextcloud/node_modules/browserify-aes/modes/cfb1.js","webpack:///nextcloud/node_modules/browserify-sign/algos.js","webpack:///nextcloud/core/src/components/AppMenuEntry.vue?vue&type=style&index=0&id=7faa0c46&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/core-js/modules/web.dom-exception.constructor.js","webpack:///nextcloud/node_modules/core-js/internals/get-method.js","webpack:///nextcloud/node_modules/cipher-base/index.js","webpack:///nextcloud/node_modules/core-js/internals/define-built-ins.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.log1p.js","webpack:///nextcloud/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///nextcloud/node_modules/core-js/internals/to-property-key.js","webpack:///nextcloud/node_modules/core-js/internals/array-copy-within.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.to-sorted.js","webpack:///nextcloud/node_modules/snap.js/dist/snap.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.some.js","webpack:///nextcloud/node_modules/core-js/internals/regexp-exec.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///nextcloud/node_modules/clipboard/dist/clipboard.js","webpack:///nextcloud/node_modules/core-js/internals/iterators-core.js","webpack:///nextcloud/node_modules/core-js/internals/to-index.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/sha/512.js","webpack:///nextcloud/node_modules/core-js/internals/advance-string-index.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.intersection.v2.js","webpack:///nextcloud/node_modules/core-js/internals/to-offset.js","webpack:///nextcloud/node_modules/core-js/internals/symbol-define-to-primitive.js","webpack:///nextcloud/node_modules/core-js/internals/to-uint8-clamped.js","webpack:///nextcloud/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///nextcloud/node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.trim-left.js","webpack:///nextcloud/node_modules/core-js/modules/es.parse-int.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.now.js","webpack:///nextcloud/node_modules/core-js/internals/uint8-from-base64.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.is-safe-integer.js","webpack:///nextcloud/node_modules/core-js/internals/array-iteration.js","webpack:///nextcloud/node_modules/core-js/internals/task.js","webpack:///nextcloud/node_modules/core-js/modules/web.immediate.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.create.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.has-instance.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.fontcolor.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/curves.js","webpack:///nextcloud/node_modules/core-js/internals/not-a-regexp.js","webpack:///nextcloud/node_modules/core-js/internals/string-pad.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.fround.js","webpack:///nextcloud/node_modules/core-js/internals/string-trim-forced.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.to-json.js","webpack:///nextcloud/node_modules/core-js/internals/is-regexp.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.construct.js","webpack:///nextcloud/node_modules/core-js/internals/regexp-get-flags.js","webpack:///nextcloud/node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///nextcloud/node_modules/create-ecdh/browser.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.get-year.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.map.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.to-array.js","webpack:///nextcloud/node_modules/core-js/internals/object-keys-internal.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.search.js","webpack:///nextcloud/node_modules/core-js/modules/es.function.name.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.map.js","webpack:///nextcloud/node_modules/core-js/internals/define-built-in-accessor.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.to-exponential.js","webpack:///nextcloud/node_modules/core-js/internals/create-iter-result-object.js","webpack:///nextcloud/node_modules/sha.js/index.js","webpack:///nextcloud/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///nextcloud/node_modules/browserify-aes/modes/ctr.js","webpack:///nextcloud/node_modules/core-js/internals/a-string.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.proto.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///nextcloud/node_modules/sha.js/sha1.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack:///nextcloud/node_modules/core-js/internals/is-null-or-undefined.js","webpack:///nextcloud/node_modules/pbkdf2/lib/precondition.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.is-array.js","webpack:///nextcloud/node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.cbrt.js","webpack:///nextcloud/node_modules/core-js/internals/set-is-disjoint-from.js","webpack:///nextcloud/node_modules/core-js/internals/collection-strong.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///nextcloud/node_modules/isarray/index.js","webpack:///nextcloud/node_modules/core-js/modules/web.dom-exception.stack.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.expm1.js","webpack:///nextcloud/core/src/components/AppMenuIcon.vue?vue&type=style&index=0&id=81f2fa84&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/core-js/internals/regexp-flags-detection.js","webpack:///nextcloud/node_modules/des.js/lib/des/ede.js","webpack:///nextcloud/node_modules/core-js/modules/es.weak-map.constructor.js","webpack:///nextcloud/node_modules/core-js/internals/is-raw-json.js","webpack:///nextcloud/node_modules/ripemd160/index.js","webpack:///nextcloud/node_modules/core-js/internals/shared-key.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/common.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/sha/common.js","webpack:///nextcloud/node_modules/core-js/internals/array-buffer.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///nextcloud/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///nextcloud/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///nextcloud/node_modules/browserify-rsa/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.at-alternative.js","webpack:///nextcloud/node_modules/core-js/internals/array-buffer-byte-length.js","webpack:///nextcloud/node_modules/core-js/internals/dom-iterables.js","webpack:///nextcloud/node_modules/core-js/internals/url-constructor-detection.js","webpack:///nextcloud/node_modules/hash.js/lib/hash/utils.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.to-well-formed.js","webpack:///nextcloud/node_modules/core-js/internals/array-slice.js","webpack:///nextcloud/node_modules/core-js/internals/require-object-coercible.js","webpack:///nextcloud/node_modules/core-js/internals/math-log2.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.define-properties.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.species.js","webpack:///nextcloud/node_modules/core-js/internals/regexp-flags.js","webpack:///nextcloud/node_modules/evp_bytestokey/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.pad-start.js","webpack:///nextcloud/node_modules/core-js/internals/string-multibyte.js","webpack:///nextcloud/node_modules/core-js/internals/set-intersection.js","webpack:///nextcloud/node_modules/vm-browserify/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.assign.js","webpack:///nextcloud/node_modules/core-js/modules/es.json.parse.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.flags.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.filter.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.fontsize.js","webpack:///nextcloud/node_modules/core-js/internals/function-call.js","webpack:///nextcloud/node_modules/core-js/internals/get-iterator.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///nextcloud/node_modules/core-js/internals/flatten-into-array.js","webpack:///nextcloud/node_modules/core-js/internals/date-to-iso-string.js","webpack:///nextcloud/node_modules/core-js/internals/well-known-symbol-define.js","webpack:///nextcloud/node_modules/core-js/internals/array-method-has-species-support.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.trunc.js","webpack:///nextcloud/node_modules/core-js/internals/object-keys.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.own-keys.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.to-spliced.js","webpack:///nextcloud/node_modules/core-js/modules/web.structured-clone.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.match.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.int16-array.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.imul.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.every.js","webpack:///nextcloud/node_modules/core-js/internals/map-helpers.js","webpack:///nextcloud/node_modules/core-js/internals/string-repeat.js","webpack:///nextcloud/node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack:///nextcloud/node_modules/core-js/internals/iterate.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.reduce.js","webpack:///nextcloud/node_modules/core-js/internals/to-primitive.js","webpack:///nextcloud/node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///nextcloud/node_modules/core-js/internals/a-possible-prototype.js","webpack:///nextcloud/node_modules/core-js/modules/es.weak-map.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///nextcloud/node_modules/typed-array-buffer/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.includes.js","webpack:///nextcloud/node_modules/core-js/internals/array-sort.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_transform.js","webpack:///nextcloud/node_modules/browserify-sign/browser/verify.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.fill.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.log10.js","webpack:///nextcloud/node_modules/core-js/internals/to-big-int.js","webpack:///nextcloud/core/src/components/AppMenu.vue?vue&type=style&index=0&id=141e7efc&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///nextcloud/node_modules/core-js/modules/web.timers.js","webpack:///nextcloud/node_modules/core-js/internals/function-bind-context.js","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.dispose.js","webpack:///nextcloud/node_modules/core-js/internals/a-weak-map.js","webpack:///nextcloud/node_modules/core-js/modules/es.error.to-string.js","webpack:///nextcloud/node_modules/randomfill/browser.js","webpack:///nextcloud/node_modules/core-js/internals/create-html.js","webpack:///nextcloud/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///nextcloud/node_modules/public-encrypt/privateDecrypt.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///nextcloud/node_modules/core-js/internals/error-to-string.js","webpack:///nextcloud/node_modules/core-js/internals/install-error-cause.js","webpack:///nextcloud/node_modules/core-js/internals/shared-store.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.group-by.js","webpack:///nextcloud/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.cosh.js","webpack:///nextcloud/node_modules/core-js/internals/math-sign.js","webpack:///nextcloud/node_modules/core-js/internals/array-buffer-basic-detection.js","webpack:///nextcloud/node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack:///nextcloud/node_modules/hash.js/lib/hash.js","webpack:///nextcloud/node_modules/core-js/modules/es.array-buffer.transfer.js","webpack:///nextcloud/node_modules/davclient.js/lib/client.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///nextcloud/node_modules/parse-asn1/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.has-own.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.flat-map.js","webpack:///nextcloud/node_modules/pbkdf2/browser.js","webpack:///nextcloud/node_modules/core-js/modules/es.parse-float.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.sinh.js","webpack:///nextcloud/node_modules/core-js/internals/fails.js","webpack:///nextcloud/node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///nextcloud/node_modules/core-js/internals/a-callable.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.keys.js","webpack:///nextcloud/node_modules/core-js/internals/schedulers-fix.js","webpack:///nextcloud/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js","webpack:///nextcloud/node_modules/core-js/internals/function-uncurry-this.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.with.js","webpack:///nextcloud/node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.replace-all.js","webpack:///nextcloud/node_modules/core-js/internals/promise-native-constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.to-precision.js","webpack:///nextcloud/node_modules/core-js/internals/math-trunc.js","webpack:///nextcloud/node_modules/core-js/internals/error-stack-install.js","webpack:///nextcloud/node_modules/core-js/internals/array-reduce.js","webpack:///nextcloud/core/src/components/AppMenuEntry.vue?vue&type=style&index=1&id=7faa0c46&prod&lang=scss","webpack:///nextcloud/node_modules/core-js/modules/es.iterator.every.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.for.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.catch.js","webpack:///nextcloud/node_modules/des.js/lib/des/des.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.asinh.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///nextcloud/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack:///nextcloud/node_modules/des.js/lib/des/cipher.js","webpack:///nextcloud/node_modules/core-js/internals/environment-user-agent.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///nextcloud/node_modules/sha.js/sha512.js","webpack:///nextcloud/node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.match-all.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.replace.js","webpack:///nextcloud/node_modules/core-js/internals/set-difference.js","webpack:///nextcloud/node_modules/create-hmac/browser.js","webpack:///nextcloud/node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///nextcloud/node_modules/core-js/internals/set-symmetric-difference.js","webpack:///nextcloud/node_modules/core-js/internals/get-set-record.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///nextcloud/node_modules/core-js/internals/an-object-or-undefined.js","webpack:///nextcloud/node_modules/browserify-des/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.define-property.js","webpack:///nextcloud/node_modules/core-js/internals/environment.js","webpack:///nextcloud/node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///nextcloud/node_modules/core-js/stable/index.js","webpack:///nextcloud/node_modules/core-js/internals/a-weak-key.js","webpack:///nextcloud/node_modules/core-js/internals/array-fill.js","webpack:///nextcloud/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///nextcloud/node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js","webpack:///nextcloud/node_modules/core-js/internals/delete-property-or-throw.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.is-extensible.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.constructor.js","webpack:///nextcloud/node_modules/core-js/internals/set-method-accept-set-like.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.raw.js","webpack:///nextcloud/node_modules/strengthify/strengthify.css","webpack:///nextcloud/node_modules/core-js/modules/web.clear-immediate.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.match.js","webpack:///nextcloud/node_modules/browserify-aes/modes/cfb8.js","webpack:///nextcloud/node_modules/core-js/modules/es.number.parse-float.js","webpack:///nextcloud/node_modules/core-js/modules/es.reflect.define-property.js","webpack:///nextcloud/node_modules/core-js/internals/array-species-constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.species.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.define-setter.js","webpack:///nextcloud/node_modules/des.js/lib/des/utils.js","webpack:///nextcloud/node_modules/core-js/internals/set-species.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.sticky.js","webpack:///nextcloud/node_modules/core-js/modules/es.unescape.js","webpack:///nextcloud/node_modules/md5.js/index.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.every.js","webpack:///nextcloud/node_modules/core-js/modules/es.weak-map.get-or-insert.js","webpack:///nextcloud/node_modules/core-js/internals/ieee754.js","webpack:///nextcloud/node_modules/core-js/internals/enum-bug-keys.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///nextcloud/node_modules/core-js/modules/es.suppressed-error.constructor.js","webpack:///nextcloud/core/src/components/ContactsMenu/ContactMenuEntry.vue?vue&type=style&index=0&id=56b7b257&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/core-js/modules/es.string.small.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///nextcloud/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///nextcloud/node_modules/core-js/internals/set-clone.js","webpack:///nextcloud/node_modules/core-js/internals/get-built-in-node-module.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.description.js","webpack:///nextcloud/node_modules/core-js/internals/environment-is-ios.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.to-primitive.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.anchor.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///nextcloud/node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///nextcloud/node_modules/core-js/internals/array-for-each.js","webpack:///nextcloud/node_modules/sha.js/hash.js","webpack:///nextcloud/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///nextcloud/core/src/jquery/css/jquery-ui-fixes.scss","webpack:///nextcloud/node_modules/core-js/internals/an-instance.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.split.js","webpack:///nextcloud/node_modules/core-js/internals/host-report-errors.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.test.js","webpack:///nextcloud/node_modules/asn1.js/lib/asn1/base/node.js","webpack:///nextcloud/node_modules/core-js/internals/add-disposable-resource.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack:///nextcloud/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///nextcloud/node_modules/core-js/internals/internal-state.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.set-year.js","webpack:///nextcloud/node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///nextcloud/node_modules/core-js/internals/symbol-registry-detection.js","webpack:///nextcloud/node_modules/core-js/internals/iterator-close-all.js","webpack:///nextcloud/node_modules/crypto-browserify/index.js","webpack:///nextcloud/node_modules/core-js/internals/collection-weak.js","webpack:///nextcloud/node_modules/core-js/modules/es.uint8-array.from-hex.js","webpack:///nextcloud/node_modules/core-js/internals/microtask.js","webpack:///nextcloud/node_modules/to-buffer/node_modules/isarray/index.js","webpack:///nextcloud/node_modules/core-js/internals/to-string-tag-support.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack:///nextcloud/node_modules/browserify-aes/authCipher.js","webpack:///nextcloud/node_modules/core-js/modules/es.set.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.map.get-or-insert-computed.js","webpack:///nextcloud/node_modules/core-js/internals/freezing.js","webpack:///nextcloud/node_modules/core-js/internals/is-forced.js","webpack:///nextcloud/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack:///nextcloud/node_modules/core-js/internals/base64-map.js","webpack:///nextcloud/node_modules/browserify-aes/modes/cbc.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.acosh.js","webpack:///nextcloud/node_modules/pbkdf2/lib/to-buffer.js","webpack:///nextcloud/node_modules/core-js/internals/safe-get-built-in.js","webpack:///nextcloud/node_modules/core-js/internals/promise-resolve.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///nextcloud/node_modules/core-js/modules/es.date.to-gmt-string.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.any.js","webpack:///nextcloud/node_modules/handlebars/runtime.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.seal.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.is-frozen.js","webpack:///nextcloud/node_modules/core-js/modules/es.object.is-extensible.js","webpack:///nextcloud/node_modules/core-js/modules/es.function.bind.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.fixed.js","webpack:///nextcloud/node_modules/core-js/internals/set-helpers.js","webpack:///nextcloud/node_modules/core-js/internals/detach-transferable.js","webpack:///nextcloud/node_modules/core-js/modules/es.array.reverse.js","webpack:///nextcloud/node_modules/core-js/internals/array-buffer-view-core.js","webpack:///nextcloud/node_modules/core-js/internals/is-callable.js","webpack:///nextcloud/node_modules/core-js/modules/es.typed-array.int32-array.js","webpack:///nextcloud/node_modules/core-js/internals/array-buffer-transfer.js","webpack:///nextcloud/node_modules/core-js/modules/es.regexp.escape.js","webpack:///nextcloud/node_modules/core-js/modules/es.promise.all-settled.js","webpack:///nextcloud/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///nextcloud/node_modules/core-js/internals/is-pure.js","webpack:///nextcloud/node_modules/core-js/internals/object-define-properties.js","webpack:///nextcloud/node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///nextcloud/node_modules/core-js/internals/create-property.js","webpack:///nextcloud/node_modules/core-js/internals/a-set.js","webpack:///nextcloud/node_modules/public-encrypt/browser.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.dispose.js","webpack:///nextcloud/node_modules/core-js/internals/get-built-in.js","webpack:///nextcloud/node_modules/core-js/modules/es.symbol.key-for.js","webpack:///nextcloud/node_modules/core-js/internals/array-from.js","webpack:///nextcloud/node_modules/core-js/modules/web.url-search-params.constructor.js","webpack:///nextcloud/node_modules/core-js/modules/es.math.tanh.js","webpack:///nextcloud/node_modules/core-js/modules/web.url-search-params.size.js","webpack:///nextcloud/node_modules/public-encrypt/withPublic.js","webpack:///nextcloud/node_modules/core-js/modules/es.string.ends-with.js","webpack:///nextcloud/node_modules/core-js/internals/to-positive-integer.js","webpack:///nextcloud/node_modules/jquery-ui-dist/jquery-ui.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar microtask = require('../internals/microtask');\nvar aCallable = require('../internals/a-callable');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar fails = require('../internals/fails');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9249\nvar WRONG_ARITY = fails(function () {\n // getOwnPropertyDescriptor for prevent experimental warning in Node 11\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1;\n});\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, {\n queueMicrotask: function queueMicrotask(fn) {\n validateArgumentsLength(arguments.length, 1);\n microtask(aCallable(fn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isSealed: function isSealed(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isSealed ? $isSealed(it) : false;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = globalThis.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n nativeSort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr === '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars === '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr === '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n var alphabet = options && options.alphabet;\n if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n throw new $TypeError('Incorrect `alphabet` option');\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\n});\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/ecma262/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar anObject = require('../internals/an-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (it, usingIterator) {\n var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;\n return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));\n};\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactMenuEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactMenuEntry.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactMenuEntry.vue?vue&type=style&index=0&id=56b7b257&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactMenuEntry.vue?vue&type=style&index=0&id=56b7b257&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ContactMenuEntry.vue?vue&type=template&id=56b7b257&scoped=true\"\nimport script from \"./ContactMenuEntry.vue?vue&type=script&lang=js\"\nexport * from \"./ContactMenuEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./ContactMenuEntry.vue?vue&type=style&index=0&id=56b7b257&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56b7b257\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"contact\"},[_c('NcAvatar',{staticClass:\"contact__avatar\",attrs:{\"user\":_vm.contact.isUser ? _vm.contact.uid : undefined,\"is-no-user\":!_vm.contact.isUser,\"disable-menu\":true,\"display-name\":_vm.contact.avatarLabel,\"preloaded-user-status\":_vm.preloadedUserStatus}}),_vm._v(\" \"),_c('a',{staticClass:\"contact__body\",attrs:{\"href\":_vm.contact.profileUrl || _vm.contact.topAction?.hyperlink}},[_c('div',{staticClass:\"contact__body__full-name\"},[_vm._v(_vm._s(_vm.contact.fullName))]),_vm._v(\" \"),(_vm.contact.lastMessage)?_c('div',{staticClass:\"contact__body__last-message\"},[_vm._v(_vm._s(_vm.contact.lastMessage))]):_vm._e(),_vm._v(\" \"),(_vm.contact.statusMessage)?_c('div',{staticClass:\"contact__body__status-message\"},[_vm._v(_vm._s(_vm.contact.statusMessage))]):_c('div',{staticClass:\"contact__body__email-address\"},[_vm._v(_vm._s(_vm.contact.emailAddresses[0]))])]),_vm._v(\" \"),(_vm.actions.length)?_c('NcActions',{attrs:{\"inline\":_vm.contact.topAction ? 1 : 0}},[_vm._l((_vm.actions),function(action,idx){return [(action.hyperlink !== '#')?_c('NcActionLink',{key:`${idx}-link`,staticClass:\"other-actions\",attrs:{\"href\":action.hyperlink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{staticClass:\"contact__action__icon\",attrs:{\"aria-hidden\":\"true\",\"src\":action.icon}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.title)+\"\\n\\t\\t\\t\")]):_c('NcActionText',{key:`${idx}-text`,staticClass:\"other-actions\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{staticClass:\"contact__action__icon\",attrs:{\"aria-hidden\":\"true\",\"src\":action.icon}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.title)+\"\\n\\t\\t\\t\")])]}),_vm._v(\" \"),_vm._l((_vm.jsActions),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"other-actions\",attrs:{\"close-after-click\":true},on:{\"click\":function($event){return action.callback(_vm.contact)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvg(_vm.contact)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.contact))+\"\\n\\t\\t\")])})],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcHeaderMenu,{staticClass:\"contactsmenu\",attrs:{\"id\":\"contactsmenu\",\"aria-label\":_setup.t('core', 'Search contacts'),\"exclude-click-outside-selectors\":\".v-popper__popper\"},on:{\"open\":_setup.onOpened},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{staticClass:\"contactsmenu__trigger-icon\",attrs:{\"path\":_setup.mdiContacts}})]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"contactsmenu__menu\"},[_c('div',{staticClass:\"contactsmenu__menu__search-container\"},[_c('div',{staticClass:\"contactsmenu__menu__input-wrapper\"},[_c(_setup.NcActions,{attrs:{\"force-menu\":\"\",\"aria-label\":_setup.t('core', 'Filter by team'),\"variant\":\"tertiary\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroupOutline}})]},proxy:true},{key:\"default\",fn:function(){return [_c(_setup.NcActionButton,{attrs:{\"modelValue\":_setup.selectedTeam,\"value\":\"$_all_$\",\"type\":\"radio\"},on:{\"update:modelValue\":function($event){_setup.selectedTeam=$event},\"update:model-value\":function($event){_setup.selectedTeam=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('core', 'All teams'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_setup.teams),function(team){return _c(_setup.NcActionButton,{key:team.teamId,attrs:{\"modelValue\":_setup.selectedTeam,\"value\":team.teamId,\"type\":\"radio\"},on:{\"update:modelValue\":function($event){_setup.selectedTeam=$event},\"update:model-value\":function($event){_setup.selectedTeam=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(team.displayName)+\"\\n\\t\\t\\t\\t\\t\\t\")])})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcTextField,{ref:\"contactsMenuInput\",staticClass:\"contactsmenu__menu__search\",attrs:{\"id\":\"contactsmenu__menu__search\",\"trailing-button-icon\":\"close\",\"label\":_setup.selectedTeamName\n\t\t\t\t\t\t? _setup.t('core', 'Search contacts in team {team}', { team: _setup.selectedTeamName })\n\t\t\t\t\t\t: _setup.t('core', 'Search contacts …'),\"trailing-button-label\":_setup.t('core', 'Reset search'),\"show-trailing-button\":_setup.searchTerm !== '',\"type\":\"search\"},on:{\"input\":_setup.onInputDebounced,\"trailing-button-click\":_setup.onReset},model:{value:(_setup.searchTerm),callback:function ($$v) {_setup.searchTerm=$$v},expression:\"searchTerm\"}})],1),_vm._v(\" \"),_vm._l((_setup.actions),function(action){return _c(_setup.NcButton,{key:action.id,staticClass:\"contactsmenu__menu__action\",attrs:{\"aria-label\":action.label,\"title\":action.label,\"variant\":\"tertiary-no-background\"},on:{\"click\":action.onClick},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":action.icon}})]},proxy:true}],null,true)})})],2),_vm._v(\" \"),(_setup.hasError)?_c(_setup.NcEmptyContent,{attrs:{\"name\":_setup.t('core', 'Could not load your contacts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true}],null,false,1853740774)}):(_setup.loadingText)?_c(_setup.NcEmptyContent,{attrs:{\"name\":_setup.loadingText},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcLoadingIcon)]},proxy:true}])}):(_setup.contacts.length === 0)?_c(_setup.NcEmptyContent,{attrs:{\"name\":_setup.t('core', 'No contacts found')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true}])}):_c('div',{staticClass:\"contactsmenu__menu__content\"},[_c('div',{attrs:{\"id\":\"contactsmenu-contacts\"}},[_c('ul',{attrs:{\"aria-label\":_setup.t('core', 'Contacts list')}},_vm._l((_setup.contacts),function(contact){return _c(_setup.ContactMenuEntry,{key:contact.id,attrs:{\"contact\":contact}})}),1)]),_vm._v(\" \"),(_setup.contactsAppEnabled)?_c('div',{staticClass:\"contactsmenu__menu__content__footer\"},[_c(_setup.NcButton,{attrs:{\"variant\":\"tertiary\",\"href\":_setup.contactsAppURL}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('core', 'Show all contacts'))+\"\\n\\t\\t\\t\\t\")])],1):(_setup.user.isAdmin)?_c('div',{staticClass:\"contactsmenu__menu__content__footer\"},[_c(_setup.NcButton,{attrs:{\"variant\":\"tertiary\",\"href\":_setup.contactsAppMgmtURL}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('core', 'Install the Contacts app'))+\"\\n\\t\\t\\t\\t\")])],1):_vm._e()])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactsMenu.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactsMenu.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactsMenu.vue?vue&type=style&index=0&id=253ecd69&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactsMenu.vue?vue&type=style&index=0&id=253ecd69&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ContactsMenu.vue?vue&type=template&id=253ecd69&scoped=true\"\nimport script from \"./ContactsMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ContactsMenu.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./ContactsMenu.vue?vue&type=style&index=0&id=253ecd69&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"253ecd69\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport default class ContactsMenuService {\n _actions;\n constructor() {\n this._actions = [];\n }\n get actions() {\n return this._actions;\n }\n /*\n * Register an action for the contacts menu\n * Actions use NcButton\n */\n addAction(action) {\n this._actions.push(action);\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('nav',{ref:\"appMenu\",staticClass:\"app-menu\",attrs:{\"aria-label\":_vm.t('core', 'Applications menu')}},[_c('ul',{staticClass:\"app-menu__list\",attrs:{\"aria-label\":_vm.t('core', 'Apps')}},_vm._l((_vm.mainAppList),function(app){return _c('AppMenuEntry',{key:app.id,attrs:{\"app\":app}})}),1),_vm._v(\" \"),_c('NcActions',{staticClass:\"app-menu__overflow\",attrs:{\"aria-label\":_vm.t('core', 'More apps')}},_vm._l((_vm.popoverAppList),function(app){return _c('NcActionLink',{key:app.id,staticClass:\"app-menu__overflow-entry\",attrs:{\"aria-current\":app.active ? 'page' : false,\"href\":app.href,\"icon\":app.icon}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(app.name)+\"\\n\\t\\t\")])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"app-menu-icon\",attrs:{\"role\":\"img\",\"aria-hidden\":_setup.ariaHidden,\"aria-label\":_setup.ariaLabel}},[_c('img',{staticClass:\"app-menu-icon__icon\",attrs:{\"src\":_vm.app.icon,\"alt\":\"\"}}),_vm._v(\" \"),(_vm.app.unread)?_c(_setup.IconDot,{staticClass:\"app-menu-icon__unread\",attrs:{\"size\":10}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuIcon.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuIcon.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuIcon.vue?vue&type=style&index=0&id=81f2fa84&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuIcon.vue?vue&type=style&index=0&id=81f2fa84&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppMenuIcon.vue?vue&type=template&id=81f2fa84&scoped=true\"\nimport script from \"./AppMenuIcon.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppMenuIcon.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppMenuIcon.vue?vue&type=style&index=0&id=81f2fa84&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"81f2fa84\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuEntry.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuEntry.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{ref:\"containerElement\",staticClass:\"app-menu-entry\",class:{\n\t\t'app-menu-entry--active': _vm.app.active,\n\t\t'app-menu-entry--truncated': _setup.needsSpace,\n\t}},[_c('a',{staticClass:\"app-menu-entry__link\",attrs:{\"href\":_vm.app.href,\"title\":_vm.app.name,\"aria-current\":_vm.app.active ? 'page' : false,\"target\":_vm.app.target ? '_blank' : undefined,\"rel\":_vm.app.target ? 'noopener noreferrer' : undefined}},[_c(_setup.AppMenuIcon,{staticClass:\"app-menu-entry__icon\",attrs:{\"app\":_vm.app}}),_vm._v(\" \"),_c('span',{ref:\"labelElement\",staticClass:\"app-menu-entry__label\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuEntry.vue?vue&type=style&index=0&id=7faa0c46&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuEntry.vue?vue&type=style&index=0&id=7faa0c46&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuEntry.vue?vue&type=style&index=1&id=7faa0c46&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuEntry.vue?vue&type=style&index=1&id=7faa0c46&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppMenuEntry.vue?vue&type=template&id=7faa0c46&scoped=true\"\nimport script from \"./AppMenuEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppMenuEntry.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppMenuEntry.vue?vue&type=style&index=0&id=7faa0c46&prod&scoped=true&lang=scss\"\nimport style1 from \"./AppMenuEntry.vue?vue&type=style&index=1&id=7faa0c46&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7faa0c46\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenu.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenu.vue?vue&type=style&index=0&id=141e7efc&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenu.vue?vue&type=style&index=0&id=141e7efc&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppMenu.vue?vue&type=template&id=141e7efc&scoped=true\"\nimport script from \"./AppMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./AppMenu.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppMenu.vue?vue&type=style&index=0&id=141e7efc&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"141e7efc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcHeaderMenu',{staticClass:\"account-menu\",attrs:{\"id\":\"user-menu\",\"is-nav\":\"\",\"aria-label\":_vm.t('core', 'Settings menu'),\"description\":_vm.avatarDescription},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcAvatar',{key:String(_vm.showUserStatus),staticClass:\"account-menu__avatar\",attrs:{\"disable-menu\":\"\",\"disable-tooltip\":\"\",\"hide-user-status\":!_vm.showUserStatus,\"user\":_vm.currentUserId,\"preloaded-user-status\":_vm.userStatus}})]},proxy:true}])},[_vm._v(\" \"),_c('ul',{staticClass:\"account-menu__list\"},[_c('AccountMenuProfileEntry',{attrs:{\"id\":_vm.profileEntry.id,\"name\":_vm.profileEntry.name,\"href\":_vm.profileEntry.href,\"active\":_vm.profileEntry.active}}),_vm._v(\" \"),_vm._l((_vm.otherEntries),function(entry){return _c('AccountMenuEntry',{key:entry.id,attrs:{\"id\":entry.id,\"name\":entry.name,\"href\":entry.href,\"active\":entry.active,\"icon\":entry.icon}})})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcListItem',{staticClass:\"account-menu-entry\",attrs:{\"id\":_vm.href ? undefined : _vm.id,\"anchor-id\":_vm.id,\"active\":_vm.active,\"compact\":\"\",\"href\":_vm.href,\"name\":_vm.name,\"target\":\"_self\"},on:{\"click\":_vm.onClick},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon',{staticClass:\"account-menu-entry__loading\",attrs:{\"size\":20}}):(_vm.$scopedSlots.icon)?_vm._t(\"icon\"):_c('img',{staticClass:\"account-menu-entry__icon\",class:{ 'account-menu-entry__icon--active': _vm.active },attrs:{\"src\":_vm.iconSource,\"alt\":\"\"}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenuEntry.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenuEntry.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenuEntry.vue?vue&type=style&index=0&id=bdb908d2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenuEntry.vue?vue&type=style&index=0&id=bdb908d2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AccountMenuEntry.vue?vue&type=template&id=bdb908d2&scoped=true\"\nimport script from \"./AccountMenuEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./AccountMenuEntry.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AccountMenuEntry.vue?vue&type=style&index=0&id=bdb908d2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bdb908d2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcListItem',{attrs:{\"id\":_vm.profileEnabled ? undefined : _vm.id,\"anchor-id\":_vm.id,\"active\":_vm.active,\"compact\":\"\",\"href\":_vm.profileEnabled ? _vm.href : undefined,\"name\":_vm.displayName,\"target\":\"_self\"},scopedSlots:_vm._u([(_vm.profileEnabled)?{key:\"subname\",fn:function(){return [_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.name)+\"\\n\\t\")]},proxy:true}:null,(_vm.canCreateAppToken)?{key:\"extra-actions\",fn:function(){return [_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.handleQrCodeClick},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQrcodeScan',{attrs:{\"size\":20}})]},proxy:true}],null,false,3784924786)})]},proxy:true}:null,(_vm.loading)?{key:\"indicator\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./QrcodeScan.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./QrcodeScan.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./QrcodeScan.vue?vue&type=template&id=7489e3c8\"\nimport script from \"./QrcodeScan.vue?vue&type=script&lang=js\"\nexport * from \"./QrcodeScan.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-scan-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M4,4H10V10H4V4M20,4V10H14V4H20M14,15H16V13H14V11H16V13H18V11H20V13H18V15H20V18H18V20H16V18H13V20H11V16H14V15M16,15V18H18V15H16M4,20V14H10V20H4M6,6V8H8V6H6M16,6V8H18V6H16M6,16V18H8V16H6M4,11H6V13H4V11M9,11H13V15H11V13H9V11M11,6H13V10H11V6M2,2V6H0V2A2,2 0 0,1 2,0H6V2H2M22,0A2,2 0 0,1 24,2V6H22V2H18V0H22M2,18V22H6V24H2A2,2 0 0,1 0,22V18H2M22,22V18H24V22A2,2 0 0,1 22,24H18V22H22Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcDialog,{attrs:{\"name\":_setup.t('core', 'Scan QR code to log in'),\"buttons\":_setup.buttons},on:{\"closing\":_setup.onClosing}},[_c('div',{staticClass:\"qr-login__content\"},[_c('p',{staticClass:\"qr-login__description\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('core', 'Use {productName} mobile client you want to connect to scan the code', { productName: _setup.productName }))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.QR,{attrs:{\"value\":_setup.qrUrl}}),_vm._v(\" \"),(_setup.isOneTimeToken)?[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('core', 'Code will expire {timeCountdown} or after use', { timeCountdown: _setup.timeCountdown }))+\"\\n\\t\\t\")]:_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountQRLoginDialog.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountQRLoginDialog.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountQRLoginDialog.vue?vue&type=style&index=0&id=666075e8&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountQRLoginDialog.vue?vue&type=style&index=0&id=666075e8&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AccountQRLoginDialog.vue?vue&type=template&id=666075e8\"\nimport script from \"./AccountQRLoginDialog.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AccountQRLoginDialog.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AccountQRLoginDialog.vue?vue&type=style&index=0&id=666075e8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenuProfileEntry.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenuProfileEntry.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AccountMenuProfileEntry.vue?vue&type=template&id=93cf338e\"\nimport script from \"./AccountMenuProfileEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./AccountMenuProfileEntry.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenu.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenu.vue?vue&type=style&index=0&id=6c007912&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountMenu.vue?vue&type=style&index=0&id=6c007912&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AccountMenu.vue?vue&type=template&id=6c007912&scoped=true\"\nimport script from \"./AccountMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./AccountMenu.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AccountMenu.vue?vue&type=style&index=0&id=6c007912&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c007912\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst isAdmin = !!window._oc_isadmin\n\n/**\n * Returns whether the current user is an administrator\n *\n * @return {boolean} true if the user is an admin, false otherwise\n * @since 9.0.0\n */\nexport const isUserAdmin = () => isAdmin\n","/*!\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @deprecated 16.0.0 Use OCP.AppConfig instead\n */\nexport const appConfig = window.oc_appconfig || {}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\nlet dynamicSlideToggleEnabled = false\n\nconst Apps = {\n\tenableDynamicSlideToggle() {\n\t\tdynamicSlideToggleEnabled = true\n\t},\n}\n\n/**\n * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings\n *\n * @param {object} [$el] sidebar element to show, defaults to $('#app-sidebar')\n */\nApps.showAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.removeClass('disappear').show()\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Shows the #app-sidebar and removes .with-app-sidebar from subsequent\n * siblings\n *\n * @param {object} [$el] sidebar element to hide, defaults to $('#app-sidebar')\n */\nApps.hideAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.hide().addClass('disappear')\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Provides a way to slide down a target area through a button and slide it\n * up if the user clicks somewhere else. Used for the news app settings and\n * add new field.\n *\n * Usage:\n * \n *
I'm sliding up
\n */\nexport function registerAppsSlideToggle() {\n\tlet buttons = $('[data-apps-slide-toggle]')\n\n\tif (buttons.length === 0) {\n\t\t$('#app-navigation').addClass('without-app-settings')\n\t}\n\n\t$(document).click(function(event) {\n\t\tif (dynamicSlideToggleEnabled) {\n\t\t\tbuttons = $('[data-apps-slide-toggle]')\n\t\t}\n\n\t\tbuttons.each(function(index, button) {\n\t\t\tconst areaSelector = $(button).data('apps-slide-toggle')\n\t\t\tconst area = $(areaSelector)\n\n\t\t\t/**\n\t\t\t *\n\t\t\t */\n\t\t\tfunction hideArea() {\n\t\t\t\tarea.slideUp(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('hide'))\n\t\t\t\t})\n\t\t\t\tarea.removeClass('opened')\n\t\t\t\t$(button).removeClass('opened')\n\t\t\t\t$(button).attr('aria-expanded', 'false')\n\t\t\t}\n\n\t\t\t/**\n\t\t\t *\n\t\t\t */\n\t\t\tfunction showArea() {\n\t\t\t\tarea.slideDown(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('show'))\n\t\t\t\t})\n\t\t\t\tarea.addClass('opened')\n\t\t\t\t$(button).addClass('opened')\n\t\t\t\t$(button).attr('aria-expanded', 'true')\n\t\t\t\tconst input = $(areaSelector + ' [autofocus]')\n\t\t\t\tif (input.length === 1) {\n\t\t\t\t\tinput.focus()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// do nothing if the area is animated\n\t\t\tif (!area.is(':animated')) {\n\t\t\t\t// button toggles the area\n\t\t\t\tif ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) {\n\t\t\t\t\tif (area.is(':visible')) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshowArea()\n\t\t\t\t\t}\n\n\t\t\t\t\t// all other areas that have not been clicked but are open\n\t\t\t\t\t// should be slid up\n\t\t\t\t} else {\n\t\t\t\t\tconst closest = $(event.target).closest(areaSelector)\n\t\t\t\t\tif (area.is(':visible') && closest[0] !== area[0]) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t})\n}\n\nexport default Apps\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst appswebroots = (window._oc_appswebroots !== undefined) ? window._oc_appswebroots : false\n\nexport default appswebroots\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { dav } from 'davclient.js'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\nconst methodMap = {\n\tcreate: 'POST',\n\tupdate: 'PROPPATCH',\n\tpatch: 'PROPPATCH',\n\tdelete: 'DELETE',\n\tread: 'PROPFIND',\n}\n\n/**\n * Throw an error when a URL is needed, and none is supplied.\n */\nfunction urlError() {\n\tthrow new Error('A \"url\" property or function must be specified')\n}\n\n/**\n * Convert a single propfind result to JSON\n *\n * @param {object} result\n * @param {object} davProperties properties mapping\n */\nfunction parsePropFindResult(result, davProperties) {\n\tif (_.isArray(result)) {\n\t\treturn _.map(result, function(subResult) {\n\t\t\treturn parsePropFindResult(subResult, davProperties)\n\t\t})\n\t}\n\tconst props = {\n\t\thref: result.href,\n\t}\n\n\t_.each(result.propStat, function(propStat) {\n\t\tif (propStat.status !== 'HTTP/1.1 200 OK') {\n\t\t\treturn\n\t\t}\n\n\t\tfor (const key in propStat.properties) {\n\t\t\tlet propKey = key\n\t\t\tif (key in davProperties) {\n\t\t\t\tpropKey = davProperties[key]\n\t\t\t}\n\t\t\tprops[propKey] = propStat.properties[key]\n\t\t}\n\t})\n\n\tif (!props.id) {\n\t\t// parse id from href\n\t\tprops.id = parseIdFromLocation(props.href)\n\t}\n\n\treturn props\n}\n\n/**\n * Parse ID from location\n *\n * @param {string} url url\n * @return {string} id\n */\nfunction parseIdFromLocation(url) {\n\tconst queryPos = url.indexOf('?')\n\tif (queryPos > 0) {\n\t\turl = url.substr(0, queryPos)\n\t}\n\n\tconst parts = url.split('/')\n\tlet result\n\tdo {\n\t\tresult = parts[parts.length - 1]\n\t\tparts.pop()\n\t\t// note: first result can be empty when there is a trailing slash,\n\t\t// so we take the part before that\n\t} while (!result && parts.length > 0)\n\n\treturn result\n}\n\n/**\n *\n * @param {number} status\n */\nfunction isSuccessStatus(status) {\n\treturn status >= 200 && status <= 299\n}\n\n/**\n *\n * @param attrs\n * @param davProperties\n */\nfunction convertModelAttributesToDavProperties(attrs, davProperties) {\n\tconst props = {}\n\tlet key\n\tfor (key in attrs) {\n\t\tlet changedProp = davProperties[key]\n\t\tlet value = attrs[key]\n\t\tif (!changedProp) {\n\t\t\tlogger.warn('No matching DAV property for property \"' + key)\n\t\t\tchangedProp = key\n\t\t}\n\t\tif (_.isBoolean(value) || _.isNumber(value)) {\n\t\t\t// convert to string\n\t\t\tvalue = '' + value\n\t\t}\n\t\tprops[changedProp] = value\n\t}\n\treturn props\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callPropFind(client, options, model, headers) {\n\treturn client.propFind(\n\t\toptions.url,\n\t\t_.values(options.davProperties) || [],\n\t\toptions.depth,\n\t\theaders,\n\t).then(function(response) {\n\t\tif (isSuccessStatus(response.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\tconst propsMapping = _.invert(options.davProperties)\n\t\t\t\tconst results = parsePropFindResult(response.body, propsMapping)\n\t\t\t\tif (options.depth > 0) {\n\t\t\t\t\t// discard root entry\n\t\t\t\t\tresults.shift()\n\t\t\t\t}\n\n\t\t\t\toptions.success(results)\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(response)\n\t\t}\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callPropPatch(client, options, model, headers) {\n\treturn client.propPatch(\n\t\toptions.url,\n\t\tconvertModelAttributesToDavProperties(model.changed, options.davProperties),\n\t\theaders,\n\t).then(function(result) {\n\t\tif (isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return the updated model\n\t\t\t\toptions.success(model.toJSON())\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(result)\n\t\t}\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callMkCol(client, options, model, headers) {\n\t// call MKCOL without data, followed by PROPPATCH\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\tnull,\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tcallPropPatch(client, options, model, headers)\n\t})\n}\n\n/**\n *\n * @param client\n * @param options\n * @param model\n * @param headers\n */\nfunction callMethod(client, options, model, headers) {\n\theaders['Content-Type'] = 'application/json'\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\toptions.data,\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tif (_.isFunction(options.success)) {\n\t\t\tif (options.type === 'PUT' || options.type === 'POST' || options.type === 'MKCOL') {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return anything\n\t\t\t\tconst responseJson = result.body || model.toJSON()\n\t\t\t\tconst locationHeader = result.xhr.getResponseHeader('Content-Location')\n\t\t\t\tif (options.type === 'POST' && locationHeader) {\n\t\t\t\t\tresponseJson.id = parseIdFromLocation(locationHeader)\n\t\t\t\t}\n\t\t\t\toptions.success(responseJson)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// if multi-status, parse\n\t\t\tif (result.status === 207) {\n\t\t\t\tconst propsMapping = _.invert(options.davProperties)\n\t\t\t\toptions.success(parsePropFindResult(result.body, propsMapping))\n\t\t\t} else {\n\t\t\t\toptions.success(result.body)\n\t\t\t}\n\t\t}\n\t})\n}\n\n/**\n *\n * @param options\n * @param model\n */\nexport function davCall(options, model) {\n\tconst client = new dav.Client({\n\t\tbaseUrl: options.url,\n\t\txmlNamespaces: _.extend({\n\t\t\t'DAV:': 'd',\n\t\t\t'http://owncloud.org/ns': 'oc',\n\t\t}, options.xmlNamespaces || {}),\n\t})\n\tclient.resolveUrl = function() {\n\t\treturn options.url\n\t}\n\tconst headers = _.extend({\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\trequesttoken: OC.requestToken,\n\t}, options.headers)\n\tif (options.type === 'PROPFIND') {\n\t\treturn callPropFind(client, options, model, headers)\n\t} else if (options.type === 'PROPPATCH') {\n\t\treturn callPropPatch(client, options, model, headers)\n\t} else if (options.type === 'MKCOL') {\n\t\treturn callMkCol(client, options, model, headers)\n\t} else {\n\t\treturn callMethod(client, options, model, headers)\n\t}\n}\n\n/**\n * DAV transport\n *\n * @param Backbone\n */\nexport function davSync(Backbone) {\n\treturn (method, model, options) => {\n\t\tconst params = { type: methodMap[method] || method }\n\t\tconst isCollection = (model instanceof Backbone.Collection)\n\n\t\tif (method === 'update') {\n\t\t// if a model has an inner collection, it must define an\n\t\t// attribute \"hasInnerCollection\" that evaluates to true\n\t\t\tif (model.hasInnerCollection) {\n\t\t\t// if the model itself is a Webdav collection, use MKCOL\n\t\t\t\tparams.type = 'MKCOL'\n\t\t\t} else if (model.usePUT || (model.collection && model.collection.usePUT)) {\n\t\t\t// use PUT instead of PROPPATCH\n\t\t\t\tparams.type = 'PUT'\n\t\t\t}\n\t\t}\n\n\t\t// Ensure that we have a URL.\n\t\tif (!options.url) {\n\t\t\tparams.url = _.result(model, 'url') || urlError()\n\t\t}\n\n\t\t// Ensure that we have the appropriate request data.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tif (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n\t\t\tparams.data = JSON.stringify(options.attrs || model.toJSON(options))\n\t\t}\n\n\t\t// Don't process data on a non-GET request.\n\t\tif (params.type !== 'PROPFIND') {\n\t\t\tparams.processData = false\n\t\t}\n\n\t\tif (params.type === 'PROPFIND' || params.type === 'PROPPATCH') {\n\t\t\tlet davProperties = model.davProperties\n\t\t\tif (!davProperties && model.model) {\n\t\t\t// use dav properties from model in case of collection\n\t\t\t\tdavProperties = model.model.prototype.davProperties\n\t\t\t}\n\t\t\tif (davProperties) {\n\t\t\t\tif (_.isFunction(davProperties)) {\n\t\t\t\t\tparams.davProperties = davProperties.call(model)\n\t\t\t\t} else {\n\t\t\t\t\tparams.davProperties = davProperties\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparams.davProperties = _.extend(params.davProperties || {}, options.davProperties)\n\n\t\t\tif (_.isUndefined(options.depth)) {\n\t\t\t\tif (isCollection) {\n\t\t\t\t\toptions.depth = 1\n\t\t\t\t} else {\n\t\t\t\t\toptions.depth = 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Pass along `textStatus` and `errorThrown` from jQuery.\n\t\tconst error = options.error\n\t\toptions.error = function(xhr, textStatus, errorThrown) {\n\t\t\toptions.textStatus = textStatus\n\t\t\toptions.errorThrown = errorThrown\n\t\t\tif (error) {\n\t\t\t\terror.call(options.context, xhr, textStatus, errorThrown)\n\t\t\t}\n\t\t}\n\n\t\t// Make the request, allowing the user to override any Ajax options.\n\t\tconst xhr = options.xhr = Backbone.davCall(_.extend(params, options), model)\n\t\tmodel.trigger('request', model, xhr, options)\n\t\treturn xhr\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport VendorBackbone from 'backbone'\nimport { davCall, davSync } from './backbone-webdav.js'\n\nconst Backbone = VendorBackbone.noConflict()\n\n// Patch Backbone for DAV\nObject.assign(Backbone, {\n\tdavCall,\n\tdavSync: davSync(Backbone),\n})\n\nexport default Backbone\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst config = window._oc_config || {}\n\nexport default config\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\n/**\n *\n */\nexport function getCurrentUser() {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst base = window._oc_debug\n\nexport const debug = base\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport IconMove from '@mdi/svg/svg/folder-move.svg?raw'\nimport IconCopy from '@mdi/svg/svg/folder-multiple-outline.svg?raw'\nimport { DialogBuilder, FilePickerType, getFilePickerBuilder } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport $ from 'jquery'\nimport { basename } from 'path'\nimport { defineAsyncComponent } from 'vue'\nimport logger from '../logger.js'\nimport OC from './index.js'\n\n/**\n * this class to ease the usage of jquery dialogs\n */\nconst Dialogs = {\n\t// dialog button types\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tYES_NO_BUTTONS: 70,\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tOK_BUTTONS: 71,\n\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CHOOSE: 1,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_MOVE: 2,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY: 3,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY_MOVE: 4,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CUSTOM: 5,\n\n\t/**\n\t * displays alert dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\talert: function(text, title, callback, modal) {\n\t\tthis.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'alert',\n\t\t\tDialogs.OK_BUTTON,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\n\t/**\n\t * displays info dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tinfo: function(text, title, callback, modal) {\n\t\tthis.message(text, title, 'info', Dialogs.OK_BUTTON, callback, modal)\n\t},\n\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirm: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {(number|{type: number, confirm: string, cancel: string, confirmClasses: string})} buttons text content of buttons\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmDestructive: function(text, title, buttons = Dialogs.OK_BUTTONS, callback = () => {}) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(text)\n\t\t\t.setButtons(buttons === Dialogs.OK_BUTTONS\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: Dialogs._getLegacyButtons(buttons, callback))\n\t\t\t.build()\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmHtml: function(text, title, callback) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText('')\n\t\t\t.setButtons([\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'No'),\n\t\t\t\t\tcallback: () => {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t])\n\t\t\t.build()\n\t\t\t.setHTML(text)\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays prompt dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} name name of the input field\n\t * @param {boolean} password whether the input should be a password input\n\t * @return {Promise}\n\t *\n\t * @deprecated Use NcDialog from `@nextcloud/vue` instead\n\t */\n\tprompt: function(text, title, callback, modal, name, password) {\n\t\treturn new Promise((resolve) => {\n\t\t\tspawnDialog(\n\t\t\t\tdefineAsyncComponent(() => import('../components/LegacyDialogPrompt.vue')),\n\t\t\t\t{\n\t\t\t\t\ttext,\n\t\t\t\t\tname: title,\n\t\t\t\t\tcallback,\n\t\t\t\t\tinputName: name,\n\t\t\t\t\tisPassword: !!password,\n\t\t\t\t},\n\t\t\t\t(...args) => {\n\t\t\t\t\tcallback(...args)\n\t\t\t\t\tresolve()\n\t\t\t\t},\n\t\t\t)\n\t\t})\n\t},\n\n\t/**\n\t * Legacy wrapper to the new Vue based filepicker from `@nextcloud/dialogs`\n\t *\n\t * Prefer to use the Vue filepicker directly instead.\n\t *\n\t * In order to pick several types of mime types they need to be passed as an\n\t * array of strings.\n\t *\n\t * When no mime type filter is given only files can be selected. In order to\n\t * be able to select both files and folders \"['*', 'httpd/unix-directory']\"\n\t * should be used instead.\n\t *\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses Choose\n\t * @param {boolean} [multiselect] whether it should be possible to select multiple files\n\t * @param {string[]} [mimetype] mimetype to filter by - directories will always be included\n\t * @param {boolean} [_modal] do not use\n\t * @param {string} [type] Type of file picker : Choose, copy, move, copy and move\n\t * @param {string} [path] path to the folder that the the file can be picket from\n\t * @param {object} [options] additonal options that need to be set\n\t * @param {Function} [options.filter] filter function for advanced filtering\n\t * @param {boolean} [options.allowDirectoryChooser] Allow to select directories\n\t * @deprecated since 27.1.0 use the filepicker from `@nextcloud/dialogs` instead\n\t */\n\t// eslint-disable-next-line no-unused-vars\n\tfilepicker(title, callback, multiselect = false, mimetype = undefined, _modal = undefined, type = FilePickerType.Choose, path = undefined, options = undefined) {\n\t\t/**\n\t\t * Create legacy callback wrapper to support old filepicker syntax\n\t\t *\n\t\t * @param fn The original callback\n\t\t * @param type The file picker type which was used to pick the file(s)\n\t\t */\n\t\tconst legacyCallback = (fn, type) => {\n\t\t\tconst getPath = (node) => {\n\t\t\t\tconst root = node?.root || ''\n\t\t\t\tlet path = node?.path || ''\n\t\t\t\t// TODO: Fix this in @nextcloud/files\n\t\t\t\tif (path.startsWith(root)) {\n\t\t\t\t\tpath = path.slice(root.length) || '/'\n\t\t\t\t}\n\t\t\t\treturn path\n\t\t\t}\n\n\t\t\tif (multiselect) {\n\t\t\t\treturn (nodes) => fn(nodes.map(getPath), type)\n\t\t\t} else {\n\t\t\t\treturn (nodes) => fn(getPath(nodes[0]), type)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Coverting a Node into a legacy file info to support the OC.dialogs.filepicker filter function\n\t\t *\n\t\t * @param node The node to convert\n\t\t */\n\t\tconst nodeToLegacyFile = (node) => ({\n\t\t\tid: node.fileid || null,\n\t\t\tpath: node.path,\n\t\t\tmimetype: node.mime || null,\n\t\t\tmtime: node.mtime?.getTime() || null,\n\t\t\tpermissions: node.permissions,\n\t\t\tname: node.attributes?.displayName || node.basename,\n\t\t\tetag: node.attributes?.etag || null,\n\t\t\thasPreview: node.attributes?.hasPreview || null,\n\t\t\tmountType: node.attributes?.mountType || null,\n\t\t\tquotaAvailableBytes: node.attributes?.quotaAvailableBytes || null,\n\t\t\ticon: null,\n\t\t\tsharePermissions: null,\n\t\t})\n\n\t\tconst builder = getFilePickerBuilder(title)\n\n\t\t// Setup buttons\n\t\tif (type === this.FILEPICKER_TYPE_CUSTOM) {\n\t\t\t(options.buttons || []).forEach((button) => {\n\t\t\t\tbuilder.addButton({\n\t\t\t\t\tcallback: legacyCallback(callback, button.type),\n\t\t\t\t\tlabel: button.text,\n\t\t\t\t\tvariant: button.defaultButton ? 'primary' : 'secondary',\n\t\t\t\t})\n\t\t\t})\n\t\t} else {\n\t\t\tbuilder.setButtonFactory((nodes, path) => {\n\t\t\t\tconst buttons = []\n\t\t\t\tconst [node] = nodes\n\t\t\t\tconst target = node?.displayname || node?.basename || basename(path)\n\n\t\t\t\tif (type === FilePickerType.Choose) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Choose),\n\t\t\t\t\t\tlabel: node && !this.multiSelect ? t('core', 'Choose {file}', { file: target }) : t('core', 'Choose'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.CopyMove || type === FilePickerType.Copy) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Copy),\n\t\t\t\t\t\tlabel: target ? t('core', 'Copy to {target}', { target }) : t('core', 'Copy'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\ticon: IconCopy,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.Move || type === FilePickerType.CopyMove) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Move),\n\t\t\t\t\t\tlabel: target ? t('core', 'Move to {target}', { target }) : t('core', 'Move'),\n\t\t\t\t\t\tvariant: type === FilePickerType.Move ? 'primary' : 'secondary',\n\t\t\t\t\t\ticon: IconMove,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn buttons\n\t\t\t})\n\t\t}\n\n\t\tif (mimetype) {\n\t\t\tbuilder.setMimeTypeFilter(typeof mimetype === 'string' ? [mimetype] : (mimetype || []))\n\t\t}\n\t\tif (typeof options?.filter === 'function') {\n\t\t\tbuilder.setFilter((node) => options.filter(nodeToLegacyFile(node)))\n\t\t}\n\t\tbuilder.allowDirectories(options?.allowDirectoryChooser === true || mimetype?.includes('httpd/unix-directory') || false)\n\t\t\t.setMultiSelect(multiselect)\n\t\t\t.startAt(path)\n\t\t\t.build()\n\t\t\t.pick()\n\t},\n\n\t/**\n\t * Displays raw dialog\n\t * You better use a wrapper instead ...\n\t *\n\t * @param content\n\t * @param title\n\t * @param dialogType\n\t * @param buttons\n\t * @param callback\n\t * @param modal\n\t * @param allowHtml\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tmessage: function(content, title, dialogType, buttons, callback = () => {}, modal, allowHtml) {\n\t\tconst builder = (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(allowHtml ? '' : content)\n\t\t\t.setButtons(Dialogs._getLegacyButtons(buttons, callback))\n\n\t\tswitch (dialogType) {\n\t\t\tcase 'alert':\n\t\t\t\tbuilder.setSeverity('warning')\n\t\t\t\tbreak\n\t\t\tcase 'notice':\n\t\t\t\tbuilder.setSeverity('info')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst dialog = builder.build()\n\n\t\tif (allowHtml) {\n\t\t\tdialog.setHTML(content)\n\t\t}\n\n\t\treturn dialog.show().then(() => {\n\t\t\tif (!callback._clicked) {\n\t\t\t\tcallback(false)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Helper for legacy API\n\t *\n\t * @param buttons\n\t * @param callback\n\t * @deprecated\n\t */\n\t_getLegacyButtons(buttons, callback) {\n\t\tconst buttonList = []\n\n\t\tswitch (typeof buttons === 'object' ? buttons.type : buttons) {\n\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.cancel ?? t('core', 'No'),\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase Dialogs.OK_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'OK'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error('Invalid call to OC.dialogs')\n\t\t\t\tbreak\n\t\t}\n\t\treturn buttonList\n\t},\n\n\t_fileexistsshown: false,\n\t/**\n\t * Displays file exists dialog\n\t *\n\t * @param {object} data upload object\n\t * @param {object} original file with name, size and mtime\n\t * @param {object} replacement file with name, size and mtime\n\t * @param {object} controller with onCancel, onSkip, onReplace and onRename methods\n\t * @return {Promise} jquery promise that resolves after the dialog template was loaded\n\t *\n\t * @deprecated 29.0.0 Use openConflictPicker from the @nextcloud/upload package instead\n\t */\n\tfileexists: function(data, original, replacement, controller) {\n\t\tconst self = this\n\t\tconst dialogDeferred = new $.Deferred()\n\n\t\tconst getCroppedPreview = function(file) {\n\t\t\tconst deferred = new $.Deferred()\n\t\t\t// Only process image files.\n\t\t\tconst type = file.type && file.type.split('/').shift()\n\t\t\tif (window.FileReader && type === 'image') {\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload = function(e) {\n\t\t\t\t\tconst blob = new Blob([e.target.result])\n\t\t\t\t\twindow.URL = window.URL || window.webkitURL\n\t\t\t\t\tconst originalUrl = window.URL.createObjectURL(blob)\n\t\t\t\t\tconst image = new Image()\n\t\t\t\t\timage.src = originalUrl\n\t\t\t\t\timage.onload = function() {\n\t\t\t\t\t\tconst url = crop(image)\n\t\t\t\t\t\tdeferred.resolve(url)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treader.readAsArrayBuffer(file)\n\t\t\t} else {\n\t\t\t\tdeferred.reject()\n\t\t\t}\n\t\t\treturn deferred\n\t\t}\n\n\t\t/**\n\t\t * @param img\n\t\t */\n\t\tfunction crop(img) {\n\t\t\tconst canvas = document.createElement('canvas')\n\t\t\tconst targetSize = 96\n\t\t\tconst width = img.width\n\t\t\tconst height = img.height\n\t\t\tlet x\n\t\t\tlet y\n\n\t\t\t// Calculate the width and height, constraining the proportions\n\t\t\tif (width > height) {\n\t\t\t\ty = 0\n\t\t\t\tx = (width - height) / 2\n\t\t\t} else {\n\t\t\t\ty = (height - width) / 2\n\t\t\t\tx = 0\n\t\t\t}\n\t\t\tconst size = Math.min(width, height)\n\n\t\t\t// Set canvas size to the cropped area\n\t\t\tcanvas.width = size\n\t\t\tcanvas.height = size\n\t\t\tconst ctx = canvas.getContext('2d')\n\t\t\tctx.drawImage(img, x, y, size, size, 0, 0, size, size)\n\n\t\t\t// Resize the canvas to match the destination (right size uses 96px)\n\t\t\tresampleHermite(canvas, size, size, targetSize, targetSize)\n\n\t\t\treturn canvas.toDataURL('image/png', 0.7)\n\t\t}\n\n\t\t/**\n\t\t * Fast image resize/resample using Hermite filter with JavaScript.\n\t\t *\n\t\t * @author ViliusL\n\t\t *\n\t\t * @param {*} canvas\n\t\t * @param {number} W\n\t\t * @param {number} H\n\t\t * @param {number} W2\n\t\t * @param {number} H2\n\t\t */\n\t\tfunction resampleHermite(canvas, W, H, W2, H2) {\n\t\t\tW2 = Math.round(W2)\n\t\t\tH2 = Math.round(H2)\n\t\t\tconst img = canvas.getContext('2d').getImageData(0, 0, W, H)\n\t\t\tconst img2 = canvas.getContext('2d').getImageData(0, 0, W2, H2)\n\t\t\tconst data = img.data\n\t\t\tconst data2 = img2.data\n\t\t\tconst ratio_w = W / W2\n\t\t\tconst ratio_h = H / H2\n\t\t\tconst ratio_w_half = Math.ceil(ratio_w / 2)\n\t\t\tconst ratio_h_half = Math.ceil(ratio_h / 2)\n\n\t\t\tfor (let j = 0; j < H2; j++) {\n\t\t\t\tfor (let i = 0; i < W2; i++) {\n\t\t\t\t\tconst x2 = (i + j * W2) * 4\n\t\t\t\t\tlet weight = 0\n\t\t\t\t\tlet weights = 0\n\t\t\t\t\tlet weights_alpha = 0\n\t\t\t\t\tlet gx_r = 0\n\t\t\t\t\tlet gx_g = 0\n\t\t\t\t\tlet gx_b = 0\n\t\t\t\t\tlet gx_a = 0\n\t\t\t\t\tconst center_y = (j + 0.5) * ratio_h\n\t\t\t\t\tfor (let yy = Math.floor(j * ratio_h); yy < (j + 1) * ratio_h; yy++) {\n\t\t\t\t\t\tconst dy = Math.abs(center_y - (yy + 0.5)) / ratio_h_half\n\t\t\t\t\t\tconst center_x = (i + 0.5) * ratio_w\n\t\t\t\t\t\tconst w0 = dy * dy // pre-calc part of w\n\t\t\t\t\t\tfor (let xx = Math.floor(i * ratio_w); xx < (i + 1) * ratio_w; xx++) {\n\t\t\t\t\t\t\tlet dx = Math.abs(center_x - (xx + 0.5)) / ratio_w_half\n\t\t\t\t\t\t\tconst w = Math.sqrt(w0 + dx * dx)\n\t\t\t\t\t\t\tif (w >= -1 && w <= 1) {\n\t\t\t\t\t\t\t\t// hermite filter\n\t\t\t\t\t\t\t\tweight = 2 * w * w * w - 3 * w * w + 1\n\t\t\t\t\t\t\t\tif (weight > 0) {\n\t\t\t\t\t\t\t\t\tdx = 4 * (xx + yy * W)\n\t\t\t\t\t\t\t\t\t// alpha\n\t\t\t\t\t\t\t\t\tgx_a += weight * data[dx + 3]\n\t\t\t\t\t\t\t\t\tweights_alpha += weight\n\t\t\t\t\t\t\t\t\t// colors\n\t\t\t\t\t\t\t\t\tif (data[dx + 3] < 255) {\n\t\t\t\t\t\t\t\t\t\tweight = weight * data[dx + 3] / 250\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tgx_r += weight * data[dx]\n\t\t\t\t\t\t\t\t\tgx_g += weight * data[dx + 1]\n\t\t\t\t\t\t\t\t\tgx_b += weight * data[dx + 2]\n\t\t\t\t\t\t\t\t\tweights += weight\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata2[x2] = gx_r / weights\n\t\t\t\t\tdata2[x2 + 1] = gx_g / weights\n\t\t\t\t\tdata2[x2 + 2] = gx_b / weights\n\t\t\t\t\tdata2[x2 + 3] = gx_a / weights_alpha\n\t\t\t\t}\n\t\t\t}\n\t\t\tcanvas.getContext('2d').clearRect(0, 0, Math.max(W, W2), Math.max(H, H2))\n\t\t\tcanvas.width = W2\n\t\t\tcanvas.height = H2\n\t\t\tcanvas.getContext('2d').putImageData(img2, 0, 0)\n\t\t}\n\n\t\tconst addConflict = function($conflicts, original, replacement) {\n\t\t\tconst $conflict = $conflicts.find('.template').clone().removeClass('template').addClass('conflict')\n\t\t\tconst $originalDiv = $conflict.find('.original')\n\t\t\tconst $replacementDiv = $conflict.find('.replacement')\n\n\t\t\t$conflict.data('data', data)\n\n\t\t\t$conflict.find('.filename').text(original.name)\n\t\t\t$originalDiv.find('.size').text(OC.Util.humanFileSize(original.size))\n\t\t\t$originalDiv.find('.mtime').text(OC.Util.formatDate(original.mtime))\n\t\t\t// ie sucks\n\t\t\tif (replacement.size && replacement.lastModified) {\n\t\t\t\t$replacementDiv.find('.size').text(OC.Util.humanFileSize(replacement.size))\n\t\t\t\t$replacementDiv.find('.mtime').text(OC.Util.formatDate(replacement.lastModified))\n\t\t\t}\n\t\t\tlet path = original.directory + '/' + original.name\n\t\t\tconst urlSpec = {\n\t\t\t\tfile: path,\n\t\t\t\tx: 96,\n\t\t\t\ty: 96,\n\t\t\t\tc: original.etag,\n\t\t\t\tforceIcon: 0,\n\t\t\t}\n\t\t\tlet previewpath = Files.generatePreviewUrl(urlSpec)\n\t\t\t// Escaping single quotes\n\t\t\tpreviewpath = previewpath.replace(/'/g, '%27')\n\t\t\t$originalDiv.find('.icon').css({ 'background-image': \"url('\" + previewpath + \"')\" })\n\t\t\tgetCroppedPreview(replacement).then(function(path) {\n\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t}, function() {\n\t\t\t\tpath = OC.MimeType.getIconUrl(replacement.type)\n\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t})\n\t\t\t// connect checkboxes with labels\n\t\t\tconst checkboxId = $conflicts.find('.conflict').length\n\t\t\t$originalDiv.find('input:checkbox').attr('id', 'checkbox_original_' + checkboxId)\n\t\t\t$replacementDiv.find('input:checkbox').attr('id', 'checkbox_replacement_' + checkboxId)\n\n\t\t\t$conflicts.append($conflict)\n\n\t\t\t// set more recent mtime bold\n\t\t\t// ie sucks\n\t\t\tif (replacement.lastModified > original.mtime) {\n\t\t\t\t$replacementDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else if (replacement.lastModified < original.mtime) {\n\t\t\t\t$originalDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same mtime collection?\n\t\t\t}\n\n\t\t\t// set bigger size bold\n\t\t\tif (replacement.size && replacement.size > original.size) {\n\t\t\t\t$replacementDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else if (replacement.size && replacement.size < original.size) {\n\t\t\t\t$originalDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same size collection?\n\t\t\t}\n\n\t\t\t// TODO show skip action for files with same size and mtime in bottom row\n\n\t\t\t// always keep readonly files\n\n\t\t\tif (original.status === 'readonly') {\n\t\t\t\t$originalDiv\n\t\t\t\t\t.addClass('readonly')\n\t\t\t\t\t.find('input[type=\"checkbox\"]')\n\t\t\t\t\t.prop('checked', true)\n\t\t\t\t\t.prop('disabled', true)\n\t\t\t\t$originalDiv.find('.message')\n\t\t\t\t\t.text(t('core', 'read-only'))\n\t\t\t}\n\t\t}\n\n\t\tconst dialogName = 'oc-dialog-fileexists-content'\n\t\tconst dialogId = '#' + dialogName\n\t\tif (this._fileexistsshown) {\n\t\t\t// add conflict\n\n\t\t\tconst $conflicts = $(dialogId + ' .conflicts')\n\t\t\taddConflict($conflicts, original, replacement)\n\n\t\t\tconst count = $(dialogId + ' .conflict').length\n\t\t\tconst title = n(\n\t\t\t\t'core',\n\t\t\t\t'{count} file conflict',\n\t\t\t\t'{count} file conflicts',\n\t\t\t\tcount,\n\t\t\t\t{ count },\n\t\t\t)\n\t\t\t$(dialogId).parent().children('.oc-dialog-title').text(title)\n\n\t\t\t// recalculate dimensions\n\t\t\t$(window).trigger('resize')\n\t\t\tdialogDeferred.resolve()\n\t\t} else {\n\t\t\t// create dialog\n\t\t\tthis._fileexistsshown = true\n\t\t\t$.when(this._getFileExistsTemplate()).then(function($tmpl) {\n\t\t\t\tconst title = t('core', 'One file conflict')\n\t\t\t\tconst $dlg = $tmpl.octemplate({\n\t\t\t\t\tdialog_name: dialogName,\n\t\t\t\t\ttitle,\n\t\t\t\t\ttype: 'fileexists',\n\n\t\t\t\t\tallnewfiles: t('core', 'New Files'),\n\t\t\t\t\tallexistingfiles: t('core', 'Already existing files'),\n\n\t\t\t\t\twhy: t('core', 'Which files do you want to keep?'),\n\t\t\t\t\twhat: t('core', 'If you select both versions, the copied file will have a number added to its name.'),\n\t\t\t\t})\n\t\t\t\t$('body').append($dlg)\n\n\t\t\t\tif (original && replacement) {\n\t\t\t\t\tconst $conflicts = $dlg.find('.conflicts')\n\t\t\t\t\taddConflict($conflicts, original, replacement)\n\t\t\t\t}\n\n\t\t\t\tconst buttonlist = [{\n\t\t\t\t\ttext: t('core', 'Cancel'),\n\t\t\t\t\tclasses: 'cancel',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onCancel !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onCancel(data)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: t('core', 'Continue'),\n\t\t\t\t\tclasses: 'continue',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onContinue !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onContinue($(dialogId + ' .conflict'))\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t},\n\t\t\t\t}]\n\n\t\t\t\t$(dialogId).ocdialog({\n\t\t\t\t\twidth: 500,\n\t\t\t\t\tcloseOnEscape: true,\n\t\t\t\t\tmodal: true,\n\t\t\t\t\tbuttons: buttonlist,\n\t\t\t\t\tcloseButton: null,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\tself._fileexistsshown = false\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$(this).ocdialog('destroy').remove()\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// ignore\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t$(dialogId).css('height', 'auto')\n\n\t\t\t\tconst $primaryButton = $dlg.closest('.oc-dialog').find('button.continue')\n\t\t\t\t$primaryButton.prop('disabled', true)\n\n\t\t\t\t/**\n\t\t\t\t *\n\t\t\t\t */\n\t\t\t\tfunction updatePrimaryButton() {\n\t\t\t\t\tconst checkedCount = $dlg.find('.conflicts .checkbox:checked').length\n\t\t\t\t\t$primaryButton.prop('disabled', checkedCount === 0)\n\t\t\t\t}\n\n\t\t\t\t// add checkbox toggling actions\n\t\t\t\t$(dialogId).find('.allnewfiles').on('click', function() {\n\t\t\t\t\tconst $checkboxes = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.allexistingfiles').on('click', function() {\n\t\t\t\t\tconst $checkboxes = $(dialogId).find('.conflict .original:not(.readonly) input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement,.original:not(.readonly)', function() {\n\t\t\t\t\tconst $checkbox = $(this).find('input[type=\"checkbox\"]')\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement input[type=\"checkbox\"],.original:not(.readonly) input[type=\"checkbox\"]', function() {\n\t\t\t\t\tconst $checkbox = $(this)\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\n\t\t\t\t// update counters\n\t\t\t\t$(dialogId).on('click', '.replacement,.allnewfiles', function() {\n\t\t\t\t\tconst count = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '({count} selected)', { count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\t\t\t\t$(dialogId).on('click', '.original,.allexistingfiles', function() {\n\t\t\t\t\tconst count = $(dialogId).find('.conflict .original input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count')\n\t\t\t\t\t\t\t.text(t('core', '({count} selected)', { count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\n\t\t\t\tdialogDeferred.resolve()\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdialogDeferred.reject()\n\t\t\t\t\talert(t('core', 'Error loading file exists template'))\n\t\t\t\t})\n\t\t}\n\t\t// }\n\t\treturn dialogDeferred.promise()\n\t},\n\n\t_getFileExistsTemplate: function() {\n\t\tconst defer = $.Deferred()\n\t\tif (!this.$fileexistsTemplate) {\n\t\t\tconst self = this\n\t\t\t$.get(OC.filePath('core', 'templates/legacy', 'fileexists.html'), function(tmpl) {\n\t\t\t\tself.$fileexistsTemplate = $(tmpl)\n\t\t\t\tdefer.resolve(self.$fileexistsTemplate)\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdefer.reject()\n\t\t\t\t})\n\t\t} else {\n\t\t\tdefer.resolve(this.$fileexistsTemplate)\n\t\t}\n\t\treturn defer.promise()\n\t},\n}\n\nexport default Dialogs\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\n/**\n * Get the current CSRF token.\n */\nexport function getRequestToken() {\n return document.head.dataset.requesttoken;\n}\n/**\n * Set a new CSRF token (e.g. because of session refresh).\n * This also emits an event bus event for the updated token.\n *\n * @param token - The new token\n * @fires Error - If the passed token is not a potential valid token\n */\nexport function setRequestToken(token) {\n if (!token || typeof token !== 'string') {\n throw new Error('Invalid CSRF token given', { cause: { token } });\n }\n document.head.dataset.requesttoken = token;\n emit('csrf-token-update', { token });\n}\n/**\n * Fetch the request token from the API.\n * This does also set it on the current context, see `setRequestToken`.\n *\n * @fires Error - If the request failed\n */\nexport async function fetchRequestToken() {\n const url = generateUrl('/csrftoken');\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error('Could not fetch CSRF token from API', { cause: response });\n }\n const { token } = await response.json();\n setRequestToken(token);\n return token;\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken } from './requesttoken.ts'\n\n/**\n * Create a new event source\n *\n * @param {string} src\n * @param {object} [data] to be send as GET\n *\n * @constructs OCEventSource\n */\nfunction OCEventSource(src, data) {\n\tlet dataStr = ''\n\tlet name\n\tlet joinChar\n\tthis.typelessListeners = []\n\tthis.closed = false\n\tthis.listeners = {}\n\tif (data) {\n\t\tfor (name in data) {\n\t\t\tdataStr += name + '=' + encodeURIComponent(data[name]) + '&'\n\t\t}\n\t}\n\tdataStr += 'requesttoken=' + encodeURIComponent(getRequestToken())\n\tif (!this.useFallBack && typeof EventSource !== 'undefined') {\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tthis.source = new EventSource(src + joinChar + dataStr)\n\t\tthis.source.onmessage = function(e) {\n\t\t\tfor (let i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](JSON.parse(e.data))\n\t\t\t}\n\t\t}.bind(this)\n\t} else {\n\t\tconst iframeId = 'oc_eventsource_iframe_' + OCEventSource.iframeCount\n\t\tOCEventSource.fallBackSources[OCEventSource.iframeCount] = this\n\t\tconst iframe = document.createElement('iframe')\n\t\tiframe.id = iframeId\n\t\tiframe.style.display = 'none'\n\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tiframe.src = src + joinChar + 'fallback=true&fallback_id=' + OCEventSource.iframeCount + '&' + dataStr\n\n\t\tthis.iframe = iframe\n\t\tdocument.body.appendChild(this.iframe)\n\t\tthis.useFallBack = true\n\t\tOCEventSource.iframeCount++\n\t}\n\t// add close listener\n\tthis.listen('__internal__', function(data) {\n\t\tif (data === 'close') {\n\t\t\tthis.close()\n\t\t}\n\t}.bind(this))\n}\nOCEventSource.fallBackSources = []\nOCEventSource.iframeCount = 0// number of fallback iframes\nOCEventSource.fallBackCallBack = function(id, type, data) {\n\tOCEventSource.fallBackSources[id].fallBackCallBack(type, data)\n}\nOCEventSource.prototype = {\n\ttypelessListeners: [],\n\tiframe: null,\n\tlisteners: {}, // only for fallback\n\tuseFallBack: false,\n\t/**\n\t * Fallback callback for browsers that don't have the\n\t * native EventSource object.\n\t *\n\t * Calls the registered listeners.\n\t *\n\t * @private\n\t * @param {string} type event type\n\t * @param {object} data received data\n\t */\n\tfallBackCallBack: function(type, data) {\n\t\tlet i\n\t\t// ignore messages that might appear after closing\n\t\tif (this.closed) {\n\t\t\treturn\n\t\t}\n\t\tif (type) {\n\t\t\tif (typeof this.listeners.done !== 'undefined') {\n\t\t\t\tfor (i = 0; i < this.listeners[type].length; i++) {\n\t\t\t\t\tthis.listeners[type][i](data)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](data)\n\t\t\t}\n\t\t}\n\t},\n\tlastLength: 0, // for fallback\n\t/**\n\t * Listen to a given type of events.\n\t *\n\t * @param {string} type event type\n\t * @param {Function} callback event callback\n\t */\n\tlisten: function(type, callback) {\n\t\tif (callback && callback.call) {\n\t\t\tif (type) {\n\t\t\t\tif (this.useFallBack) {\n\t\t\t\t\tif (!this.listeners[type]) {\n\t\t\t\t\t\tthis.listeners[type] = []\n\t\t\t\t\t}\n\t\t\t\t\tthis.listeners[type].push(callback)\n\t\t\t\t} else {\n\t\t\t\t\tthis.source.addEventListener(type, function(e) {\n\t\t\t\t\t\tif (typeof e.data !== 'undefined') {\n\t\t\t\t\t\t\tcallback(JSON.parse(e.data))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback('')\n\t\t\t\t\t\t}\n\t\t\t\t\t}, false)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.typelessListeners.push(callback)\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * Closes this event source.\n\t */\n\tclose: function() {\n\t\tthis.closed = true\n\t\tif (typeof this.source !== 'undefined') {\n\t\t\tthis.source.close()\n\t\t}\n\t},\n}\n\nexport default OCEventSource\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-FileCopyrightText: 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tloadTranslations,\n\tregister,\n\ttranslate,\n\ttranslatePlural,\n\tunregister,\n} from '@nextcloud/l10n'\nimport Handlebars from 'handlebars'\n\n/**\n * L10N namespace with localization functions.\n *\n * @namespace OC.L10n\n * @deprecated 26.0.0 use https://www.npmjs.com/package/@nextcloud/l10n\n */\nconst L10n = {\n\n\t/**\n\t * Load an app's translation bundle if not loaded already.\n\t *\n\t * @deprecated 26.0.0 use `loadTranslations` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Function} callback callback to be called when\n\t * the translations are loaded\n\t * @return {Promise} promise\n\t */\n\tload: loadTranslations,\n\n\t/**\n\t * Register an app's translation bundle.\n\t *\n\t * @deprecated 26.0.0 use `register` from https://www.npmjs.com/package/@nextcloud/l10\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Record} bundle bundle\n\t */\n\tregister,\n\n\t/**\n\t * @private\n\t * @deprecated 26.0.0 use `unregister` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\t_unregister: unregister,\n\n\t/**\n\t * Translate a string\n\t *\n\t * @deprecated 26.0.0 use `translate` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {number} [count] number to replace %n with\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @param {boolean} [options.sanitize=true] enable/disable sanitization (by default enabled)\n\t * @return {string}\n\t */\n\ttranslate,\n\n\t/**\n\t * Translate a plural string\n\t *\n\t * @deprecated 26.0.0 use `translatePlural` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @return {string} Translated string\n\t */\n\ttranslatePlural,\n}\n\nexport default L10n\n\nHandlebars.registerHelper('t', function(app, text) {\n\treturn translate(app, text)\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/** @typedef {import('jquery')} jQuery */\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport { menuSpeed } from './constants.js'\n\nexport let currentMenu = null\nexport let currentMenuToggle = null\n\n/**\n * For menu toggling\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n * @param {Function | undefined} toggle callback invoked everytime the menu is opened\n * @param {boolean} headerMenu is this a top right header menu?\n * @return {void}\n */\nexport function registerMenu($toggle, $menuEl, toggle, headerMenu) {\n\t$menuEl.addClass('menu')\n\tconst isClickableElement = $toggle.prop('tagName') === 'A' || $toggle.prop('tagName') === 'BUTTON'\n\n\t// On link and button, the enter key trigger a click event\n\t// Only use the click to avoid two fired events\n\t$toggle.on(isClickableElement ? 'click.menu' : 'click.menu keyup.menu', function(event) {\n\t\t// prevent the link event (append anchor to URL)\n\t\tevent.preventDefault()\n\n\t\t// allow enter key as a trigger\n\t\tif (event.key && event.key !== 'Enter') {\n\t\t\treturn\n\t\t}\n\n\t\tif ($menuEl.is(currentMenu)) {\n\t\t\thideMenus()\n\t\t\treturn\n\t\t} else if (currentMenu) {\n\t\t\t// another menu was open?\n\t\t\t// close it\n\t\t\thideMenus()\n\t\t}\n\n\t\tif (headerMenu === true) {\n\t\t\t$menuEl.parent().addClass('openedMenu')\n\t\t}\n\n\t\t// Set menu to expanded\n\t\t$toggle.attr('aria-expanded', true)\n\n\t\t$menuEl.slideToggle(menuSpeed, toggle)\n\t\tcurrentMenu = $menuEl\n\t\tcurrentMenuToggle = $toggle\n\t})\n}\n\n/**\n * Unregister a previously registered menu\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n */\nexport function unregisterMenu($toggle, $menuEl) {\n\t// close menu if opened\n\tif ($menuEl.is(currentMenu)) {\n\t\thideMenus()\n\t}\n\t$toggle.off('click.menu').removeClass('menutoggle')\n\t$menuEl.removeClass('menu')\n}\n\n/**\n * Hides any open menus\n *\n * @param {Function} complete callback when the hiding animation is done\n */\nexport function hideMenus(complete) {\n\tif (currentMenu) {\n\t\tconst lastMenu = currentMenu\n\t\tcurrentMenu.trigger(new $.Event('beforeHide'))\n\t\tcurrentMenu.slideUp(menuSpeed, function() {\n\t\t\tlastMenu.trigger(new $.Event('afterHide'))\n\t\t\tif (complete) {\n\t\t\t\tcomplete.apply(this, arguments)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Set menu to closed\n\t$('.menutoggle').attr('aria-expanded', false)\n\tif (currentMenuToggle) {\n\t\tcurrentMenuToggle.attr('aria-expanded', false)\n\t}\n\n\t$('.openedMenu').removeClass('openedMenu')\n\tcurrentMenu = null\n\tcurrentMenuToggle = null\n}\n\n/**\n * Shows a given element as menu\n *\n * @param {object} [$toggle] menu toggle\n * @param {object} $menuEl menu element\n * @param {Function} complete callback when the showing animation is done\n */\nexport function showMenu($toggle, $menuEl, complete) {\n\tif ($menuEl.is(currentMenu)) {\n\t\treturn\n\t}\n\thideMenus()\n\tcurrentMenu = $menuEl\n\tcurrentMenuToggle = $toggle\n\t$menuEl.trigger(new $.Event('beforeShow'))\n\t$menuEl.show()\n\t$menuEl.trigger(new $.Event('afterShow'))\n\t// no animation\n\tif (_.isFunction(complete)) {\n\t\tcomplete()\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const coreApps = ['', 'admin', 'log', 'core/search', 'core', '3rdparty']\nexport const menuSpeed = 50\nexport const PERMISSION_NONE = 0\nexport const PERMISSION_CREATE = 4\nexport const PERMISSION_READ = 1\nexport const PERMISSION_UPDATE = 2\nexport const PERMISSION_DELETE = 8\nexport const PERMISSION_SHARE = 16\nexport const PERMISSION_ALL = 31\nexport const TAG_FAVORITE = '_$!!$_'\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\n\nconst iconCache = new Map()\n\n/**\n * Return the url to icon of the given mimeType\n *\n * @param {string} mimeType The mimeType to get the icon for\n * @return {string} Url to the icon for mimeType\n */\nexport function getIconUrl(mimeType) {\n\tif (typeof mimeType === 'undefined') {\n\t\treturn undefined\n\t}\n\n\twhile (mimeType in window.OC.MimeTypeList.aliases) {\n\t\tmimeType = window.OC.MimeTypeList.aliases[mimeType]\n\t}\n\n\tif (!iconCache.has(mimeType)) {\n\t\tlet gotIcon = false\n\t\tlet path = ''\n\t\t// First try to get the correct icon from the current legacy-theme\n\t\tif (OC.theme.folder !== '' && Array.isArray(OC.MimeTypeList.themes[OC.theme.folder])) {\n\t\t\tpath = getRootUrl() + '/themes/' + window.OC.theme.folder + '/core/img/filetypes/'\n\t\t\tconst icon = getMimeTypeIcon(mimeType, window.OC.MimeTypeList.themes[OC.theme.folder])\n\t\t\tif (icon) {\n\t\t\t\tgotIcon = true\n\t\t\t\tpath += icon + '.svg'\n\t\t\t}\n\t\t}\n\n\t\t// theming is always enabled since Nextcloud 20 so we get it from that\n\t\tif (!gotIcon) {\n\t\t\tpath = generateUrl('/apps/theming/img/core/filetypes/' + getMimeTypeIcon(mimeType, window.OC.MimeTypeList.files) + '.svg')\n\t\t}\n\n\t\tpath += '?v=' + window.OCA.Theming.cacheBuster\n\t\t// Cache the result\n\t\ticonCache.set(mimeType, path)\n\t}\n\n\treturn iconCache.get(mimeType)\n}\n\n/**\n * Return the file icon we want to use for the given mimeType.\n * The file needs to be present in the supplied file list\n *\n * @param {string} mimeType The mimeType we want an icon for\n * @param {string[]} files The available icons in this theme\n * @return {string | null} The icon to use or null if there is no match\n */\nfunction getMimeTypeIcon(mimeType, files) {\n\tconst icon = mimeType.replace(new RegExp('/', 'g'), '-')\n\n\t// Generate path\n\tif (mimeType === 'dir' && files.includes('folder')) {\n\t\treturn 'folder'\n\t} else if (mimeType === 'dir-encrypted' && files.includes('folder-encrypted')) {\n\t\treturn 'folder-encrypted'\n\t} else if (mimeType === 'dir-shared' && files.includes('folder-shared')) {\n\t\treturn 'folder-shared'\n\t} else if (mimeType === 'dir-public' && files.includes('folder-public')) {\n\t\treturn 'folder-public'\n\t} else if ((mimeType === 'dir-external' || mimeType === 'dir-external-root') && files.includes('folder-external')) {\n\t\treturn 'folder-external'\n\t} else if (files.includes(icon)) {\n\t\treturn icon\n\t} else if (files.includes(icon.split('-')[0])) {\n\t\treturn icon.split('-')[0]\n\t} else if (files.includes('file')) {\n\t\treturn 'file'\n\t}\n\n\treturn null\n}\n\n/**\n * Clear the icon cache\n */\nexport function clearIconCache() {\n\ticonCache.clear()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * A little class to manage a status field for a \"saving\" process.\n * It can be used to display a starting message (e.g. \"Saving...\") and then\n * replace it with a green success message or a red error message.\n */\nexport default {\n /**\n * Displayes a \"Saving...\" message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n */\n startSaving(selector) {\n this.startAction(selector, t('core', 'Saving …'));\n },\n /**\n * Displayes a custom message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n * @param message - Plain text message to display (no HTML allowed)\n */\n startAction(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.remove('error');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n el.style.display = 'block';\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selectior for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status - is being used to decide whether the message is displayed as an error/success\n */\n finishedSaving(selector, response) {\n this.finishedAction(selector, response);\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status . Is being used to decide whether the message is displayed as an error/success\n */\n finishedAction(selector, response) {\n if (response.status === 'success') {\n this.finishedSuccess(selector, response.data.message);\n }\n else {\n this.finishedError(selector, response.data.message);\n }\n },\n /**\n * Displayes an success message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text success message to display (no HTML allowed)\n */\n finishedSuccess(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('error');\n el.classList.add('success');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n window.setTimeout(fadeOut, 3000);\n el.style.display = 'block';\n /**\n * Fades out the message element\n */\n function fadeOut() {\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n const animation = el.animate?.([\n { opacity: 1 },\n { opacity: 0 },\n ], {\n duration: 900,\n fill: 'forwards',\n });\n if (animation) {\n animation.addEventListener('finish', () => {\n el.style.display = 'none';\n });\n }\n else {\n window.setTimeout(() => {\n el.style.display = 'none';\n }, 900);\n }\n }\n },\n /**\n * Displayes an error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text error message to display (no HTML allowed)\n */\n finishedError(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.add('error');\n el.style.display = 'block';\n },\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showMessage, TOAST_DEFAULT_TIMEOUT, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs'\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\n/** @typedef {import('jquery')} jQuery */\n\n/**\n * @todo Write documentation\n * @deprecated 17.0.0 use the `@nextcloud/dialogs` package instead\n * @namespace OC.Notification\n */\nexport default {\n\n\tupdatableNotification: null,\n\n\tgetDefaultNotificationFunction: null,\n\n\t/**\n\t * @param {Function} callback callback function\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tsetDefault(callback) {\n\t\tthis.getDefaultNotificationFunction = callback\n\t},\n\n\t/**\n\t * Hides a notification.\n\t *\n\t * If a row is given, only hide that one.\n\t * If no row is given, hide all notifications.\n\t *\n\t * @param {jQuery} [$row] notification row\n\t * @param {Function} [callback] callback\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\thide($row, callback) {\n\t\tif (_.isFunction($row)) {\n\t\t\t// first arg is the callback\n\t\t\tcallback = $row\n\t\t\t$row = undefined\n\t\t}\n\n\t\tif (!$row) {\n\t\t\tlogger.error('Missing argument $row in OC.Notification.hide() call, caller needs to be adjusted to only dismiss its own notification')\n\t\t\treturn\n\t\t}\n\n\t\t// remove the row directly\n\t\t$row.each(function() {\n\t\t\tif ($(this)[0].toastify) {\n\t\t\t\t$(this)[0].toastify.hideToast()\n\t\t\t} else {\n\t\t\t\tlogger.error('cannot hide toast because object is not set')\n\t\t\t}\n\t\t\tif (this === this.updatableNotification) {\n\t\t\t\tthis.updatableNotification = null\n\t\t\t}\n\t\t})\n\t\tif (callback) {\n\t\t\tcallback.call()\n\t\t}\n\t\tif (this.getDefaultNotificationFunction) {\n\t\t\tthis.getDefaultNotificationFunction()\n\t\t}\n\t},\n\n\t/**\n\t * Shows a notification as HTML without being sanitized before.\n\t * If you pass unsanitized user input this may lead to a XSS vulnerability.\n\t * Consider using show() instead of showHTML()\n\t *\n\t * @param {string} html Message to display\n\t * @param {object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {number} [options.timeout] timeout value, defaults to 0 (permanent)\n\t * @return {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowHtml(html, options) {\n\t\toptions = options || {}\n\t\toptions.isHTML = true\n\t\toptions.timeout = (!options.timeout) ? TOAST_PERMANENT_TIMEOUT : options.timeout\n\t\tconst toast = showMessage(html, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Shows a sanitized notification\n\t *\n\t * @param {string} text Message to display\n\t * @param {object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {number} [options.timeout] timeout value, defaults to 0 (permanent)\n\t * @return {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshow(text, options) {\n\t\tconst escapeHTML = function(text) {\n\t\t\treturn text.toString()\n\t\t\t\t.split('&').join('&')\n\t\t\t\t.split('<').join('<')\n\t\t\t\t.split('>').join('>')\n\t\t\t\t.split('\"').join('"')\n\t\t\t\t.split('\\'').join(''')\n\t\t}\n\n\t\toptions = options || {}\n\t\toptions.timeout = (!options.timeout) ? TOAST_PERMANENT_TIMEOUT : options.timeout\n\t\tconst toast = showMessage(escapeHTML(text), options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Updates (replaces) a sanitized notification.\n\t *\n\t * @param {string} text Message to display\n\t * @return {jQuery} JQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowUpdate(text) {\n\t\tif (this.updatableNotification) {\n\t\t\tthis.updatableNotification.hideToast()\n\t\t}\n\t\tthis.updatableNotification = showMessage(text, { timeout: TOAST_PERMANENT_TIMEOUT })\n\t\tthis.updatableNotification.toastElement.toastify = this.updatableNotification\n\t\treturn $(this.updatableNotification.toastElement)\n\t},\n\n\t/**\n\t * Shows a notification that disappears after x seconds, default is\n\t * 7 seconds\n\t *\n\t * @param {string} text Message to show\n\t * @param {Array} [options] options array\n\t * @param {number} [options.timeout] timeout in seconds, if this is 0 it will show the message permanently\n\t * @param {boolean} [options.isHTML] an indicator for HTML notifications (true) or text (false)\n\t * @param {string} [options.type] notification type\n\t * @return {jQuery} the toast element\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowTemporary(text, options) {\n\t\toptions = options || {}\n\t\toptions.timeout = options.timeout || TOAST_DEFAULT_TIMEOUT\n\t\tconst toast = showMessage(text, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Returns whether a notification is hidden.\n\t *\n\t * @return {boolean}\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tisHidden() {\n\t\treturn !$('#content').find('.toastify').length\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { confirmPassword, isPasswordConfirmationRequired } from '@nextcloud/password-confirmation'\n\n/**\n * @namespace OC.PasswordConfirmation\n */\nexport default {\n\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequiresPasswordConfirmation() {\n\t\treturn isPasswordConfirmationRequired()\n\t},\n\n\t/**\n\t * @param {Function} callback success callback function\n\t * @param {object} options options currently not used by confirmPassword\n\t * @param {Function} rejectCallback error callback function\n\t *\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequirePasswordConfirmation(callback, options, rejectCallback) {\n\t\tconfirmPassword().then(callback, rejectCallback)\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\t/**\n\t * @type {Array.}\n\t */\n\t_plugins: {},\n\n\t/**\n\t * Register plugin\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @param {OC.Plugin} plugin plugin\n\t */\n\tregister(targetName, plugin) {\n\t\tlet plugins = this._plugins[targetName]\n\t\tif (!plugins) {\n\t\t\tplugins = this._plugins[targetName] = []\n\t\t}\n\t\tplugins.push(plugin)\n\t},\n\n\t/**\n\t * Returns all plugin registered to the given target\n\t * name / app name / class name.\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @return {Array.} array of plugins\n\t */\n\tgetPlugins(targetName) {\n\t\treturn this._plugins[targetName] || []\n\t},\n\n\t/**\n\t * Call attach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tattach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].attach) {\n\t\t\t\tplugins[i].attach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Call detach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tdetach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].detach) {\n\t\t\t\tplugins[i].detach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport $ from 'jquery'\nimport _ from 'underscore'\nimport logger from '../logger.js'\n\n/**\n * @deprecated 25.0.0 Use Vue based (`@nextcloud/vue`) settings components instead\n */\nexport default {\n\t_cachedGroups: null,\n\n\tescapeHTML: function(text) {\n\t\treturn text.toString()\n\t\t\t.split('&').join('&')\n\t\t\t.split('<').join('<')\n\t\t\t.split('>').join('>')\n\t\t\t.split('\"').join('"')\n\t\t\t.split('\\'').join(''')\n\t},\n\n\tasync rebuildNavigation() {\n\t\tconst { data } = await axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\treturn\n\t\t}\n\n\t\temit('nextcloud:app-menu.refresh', { apps: data.ocs.data })\n\t\twindow.dispatchEvent(new Event('resize'))\n\t},\n\n\t/**\n\t * Setup selection box for group selection.\n\t *\n\t * Values need to be separated by a pipe \"|\" character.\n\t * (mostly because a comma is more likely to be used\n\t * for groups)\n\t *\n\t * @param $elements jQuery element (hidden input) to setup select2 on\n\t * @param {Array} [extraOptions] extra options hash to pass to select2\n\t * @param {Array} [options] extra options\n\t * @param {Array} [options.excludeAdmins] flag whether to exclude admin groups\n\t */\n\tsetupGroupsSelect: function($elements, extraOptions, options) {\n\t\tconst self = this\n\t\toptions = options || {}\n\t\tif ($elements.length > 0) {\n\t\t\t// Let's load the data and THEN init our select\n\t\t\t$.ajax({\n\t\t\t\turl: generateOcsUrl('cloud/groups/details'),\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tconst results = []\n\n\t\t\t\t\tif (data.ocs.data.groups && data.ocs.data.groups.length > 0) {\n\t\t\t\t\t\tdata.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\t\tif (!options.excludeAdmins || group.id !== 'admin') {\n\t\t\t\t\t\t\t\tresults.push({ id: group.id, displayname: group.displayname })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\t// note: settings are saved through a \"change\" event registered\n\t\t\t\t\t\t// on all input fields\n\t\t\t\t\t\t$elements.select2(_.extend({\n\t\t\t\t\t\t\tplaceholder: t('core', 'Groups'),\n\t\t\t\t\t\t\tallowClear: true,\n\t\t\t\t\t\t\tmultiple: true,\n\t\t\t\t\t\t\ttoggleSelect: true,\n\t\t\t\t\t\t\tseparator: '|',\n\t\t\t\t\t\t\tdata: { results, text: 'displayname' },\n\t\t\t\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\t\t\t\tconst groups = $(element).val()\n\t\t\t\t\t\t\t\tlet selection\n\t\t\t\t\t\t\t\tif (groups && results.length > 0) {\n\t\t\t\t\t\t\t\t\tselection = _.map(_.filter((groups || []).split('|').sort(), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn results.find(function(group) {\n\t\t\t\t\t\t\t\t\t\t\treturn group.id === groupId\n\t\t\t\t\t\t\t\t\t\t}) !== undefined\n\t\t\t\t\t\t\t\t\t}), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\t\t\t\t\tdisplayname: results.find(function(group) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn group.id === groupId\n\t\t\t\t\t\t\t\t\t\t\t}).displayname,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t} else if (groups) {\n\t\t\t\t\t\t\t\t\tselection = _.map((groups || []).split('|').sort(), function(groupId) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\t\t\t\t\tdisplayname: groupId,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcallback(selection)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tformatResult: function(element) {\n\t\t\t\t\t\t\t\treturn self.escapeHTML(element.displayname)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tformatSelection: function(element) {\n\t\t\t\t\t\t\t\treturn self.escapeHTML(element.displayname)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\t\t\t// prevent double markup escape\n\t\t\t\t\t\t\t\treturn m\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}, extraOptions || {}))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.show(t('core', 'Group list is empty'), { type: 'error' })\n\t\t\t\t\t\tlogger.debug(data)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function(data) {\n\t\t\t\t\tOC.Notification.show(t('core', 'Unable to retrieve the group list'), { type: 'error' })\n\t\t\t\t\tlogger.debug(data)\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const theme = window._theme || {}\n","import { l as logger, F as FileType } from \"./chunks/folder-CeyZUHai.mjs\";\nimport { a, b, N, c, P } from \"./chunks/folder-CeyZUHai.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport isSvg from \"is-svg\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"@nextcloud/paths\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nconst DefaultType = Object.freeze({\n DEFAULT: \"default\",\n HIDDEN: \"hidden\"\n});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get hotkey() {\n return this._action.hotkey;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\n }\n }\n}\nfunction registerFileAction(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n}\nfunction getFileActions() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n}\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nfunction registerFileListAction(action) {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n}\nfunction getFileListActions() {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n}\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const safeSrc = exports.safeSrc = [];\n const t = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t[name] = index;\n src[index] = value;\n safeSrc[index] = safe;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\n createToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n if (typeof a2 === \"number\" && typeof b2 === \"number\") {\n return a2 === b2 ? 0 : a2 < b2 ? -1 : 1;\n }\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? re2[t.LOOSE] : re2[t.FULL]);\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.major < other.major) {\n return -1;\n }\n if (this.major > other.major) {\n return 1;\n }\n if (this.minor < other.minor) {\n return -1;\n }\n if (this.minor > other.minor) {\n return 1;\n }\n if (this.patch < other.patch) {\n return -1;\n }\n if (this.patch > other.patch) {\n return 1;\n }\n return 0;\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i = 0;\n do {\n const a2 = this.prerelease[i];\n const b2 = other.prerelease[i];\n debug(\"prerelease compare\", i, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i = 0;\n do {\n const a2 = this.build[i];\n const b2 = other.build[i];\n debug(\"build compare\", i, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n if (release.startsWith(\"pre\")) {\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re2[t.PRERELEASELOOSE] : re2[t.PRERELEASE]);\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`);\n }\n }\n }\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"release\":\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`);\n }\n this.prerelease.length = 0;\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nfunction registerFileListHeaders(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n}\nfunction getFileListHeaders() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n}\nfunction checkOptionalProperty(obj, property, type) {\n if (typeof obj[property] !== \"undefined\") {\n if (type === \"array\") {\n if (!Array.isArray(obj[property])) {\n throw new Error(`View ${property} must be an array`);\n }\n } else if (typeof obj[property] !== type) {\n throw new Error(`View ${property} must be a ${type}`);\n } else if (type === \"object\" && (obj[property] === null || Array.isArray(obj[property]))) {\n throw new Error(`View ${property} must be an object`);\n }\n }\n}\nclass Column {\n _column;\n constructor(column) {\n validateColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nfunction validateColumn(column) {\n if (typeof column !== \"object\" || column === null) {\n throw new Error(\"View column must be an object\");\n }\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n checkOptionalProperty(column, \"sort\", \"function\");\n checkOptionalProperty(column, \"summary\", \"function\");\n}\nclass View {\n _view;\n constructor(view) {\n validateView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get hidden() {\n return this._view.hidden;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nfunction validateView(view) {\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n checkOptionalProperty(view, \"caption\", \"string\");\n checkOptionalProperty(view, \"columns\", \"array\");\n checkOptionalProperty(view, \"defaultSortKey\", \"string\");\n checkOptionalProperty(view, \"emptyCaption\", \"string\");\n checkOptionalProperty(view, \"emptyTitle\", \"string\");\n checkOptionalProperty(view, \"emptyView\", \"function\");\n checkOptionalProperty(view, \"expanded\", \"boolean\");\n checkOptionalProperty(view, \"hidden\", \"boolean\");\n checkOptionalProperty(view, \"loadChildViews\", \"function\");\n checkOptionalProperty(view, \"order\", \"number\");\n checkOptionalProperty(view, \"params\", \"object\");\n checkOptionalProperty(view, \"parent\", \"string\");\n checkOptionalProperty(view, \"sticky\", \"boolean\");\n if (view.columns) {\n view.columns.forEach(validateColumn);\n const columnIds = view.columns.reduce((set, column) => set.add(column.id), /* @__PURE__ */ new Set());\n if (columnIds.size !== view.columns.length) {\n throw new Error(\"View columns must have unique ids\");\n }\n }\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n *\n * @param view The view to register\n * @throws {Error} if a view with the same id is already registered\n * @throws {Error} if the registered view is invalid\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`IView id ${view.id} is already registered`);\n }\n validateView(view);\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n *\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n *\n * @param id - The id of the view to set as active\n * @throws {Error} If no view with the given id was registered\n * @fires UpdateActiveViewEvent\n */\n setActive(id) {\n if (id === null) {\n this._currentView = null;\n } else {\n const view = this._views.find(({ id: viewId }) => viewId === id);\n if (!view) {\n throw new Error(`No view with ${id} registered`);\n }\n this._currentView = view;\n }\n const event = new CustomEvent(\"updateActive\", { detail: this._currentView });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nfunction getNavigation() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n}\nconst NewMenuEntryCategory = Object.freeze({\n /**\n * For actions where the user is intended to upload from their device\n */\n UploadFromDevice: 0,\n /**\n * For actions that create new nodes on the server without uploading\n */\n CreateNew: 1,\n /**\n * For everything not matching the other categories\n */\n Other: 2\n});\nclass NewMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? NewMenuEntryCategory.CreateNew;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param context - The creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !entry.iconSvgInline || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nfunction getNewFileMenu() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n}\nfunction addNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n}\nfunction removeNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n}\nfunction getNewFileMenuEntries(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n}\nfunction registerSidebarAction(action) {\n validateSidebarAction(action);\n window._nc_files_sidebar_actions ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sidebar_actions.has(action.id)) {\n logger.warn(`Sidebar action with id \"${action.id}\" already registered. Skipping.`);\n return;\n }\n window._nc_files_sidebar_actions.set(action.id, action);\n logger.debug(`New sidebar action with id \"${action.id}\" registered.`);\n}\nfunction getSidebarActions() {\n if (window._nc_files_sidebar_actions) {\n return [...window._nc_files_sidebar_actions.values()];\n }\n return [];\n}\nfunction validateSidebarAction(action) {\n if (typeof action !== \"object\") {\n throw new Error(\"Sidebar action is not an object\");\n }\n if (!action.id || typeof action.id !== \"string\" || action.id !== CSS.escape(action.id)) {\n throw new Error(\"Sidebar actions need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Sidebar actions need to have a displayName function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Sidebar actions need to have a iconSvgInline function\");\n }\n if (!action.enabled || typeof action.enabled !== \"function\") {\n throw new Error(\"Sidebar actions need to have an enabled function\");\n }\n if (!action.onClick || typeof action.onClick !== \"function\") {\n throw new Error(\"Sidebar actions need to have an onClick function\");\n }\n}\nfunction registerSidebarTab(tab) {\n validateSidebarTab(tab);\n window._nc_files_sidebar_tabs ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sidebar_tabs.has(tab.id)) {\n logger.warn(`Sidebar tab with id \"${tab.id}\" already registered. Skipping.`);\n return;\n }\n window._nc_files_sidebar_tabs.set(tab.id, tab);\n logger.debug(`New sidebar tab with id \"${tab.id}\" registered.`);\n}\nfunction getSidebarTabs() {\n if (window._nc_files_sidebar_tabs) {\n return [...window._nc_files_sidebar_tabs.values()];\n }\n return [];\n}\nfunction validateSidebarTab(tab) {\n if (typeof tab !== \"object\") {\n throw new Error(\"Sidebar tab is not an object\");\n }\n if (!tab.id || typeof tab.id !== \"string\" || tab.id !== CSS.escape(tab.id)) {\n throw new Error(\"Sidebar tabs need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!tab.tagName || typeof tab.tagName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have the tagName name set\");\n }\n if (!tab.tagName.match(/^[a-z][a-z0-9-_]+$/)) {\n throw new Error('Sidebar tab \"tagName\" is invalid');\n }\n if (!tab.displayName || typeof tab.displayName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have a name set\");\n }\n if (typeof tab.iconSvgInline !== \"string\" || !isSvg(tab.iconSvgInline)) {\n throw new Error(\"Sidebar tabs need to have an valid SVG icon\");\n }\n if (typeof tab.order !== \"number\") {\n throw new Error(\"Sidebar tabs need to have a numeric order set\");\n }\n if (tab.enabled && typeof tab.enabled !== \"function\") {\n throw new Error('Sidebar tab \"enabled\" is not a function');\n }\n if (tab.onInit && typeof tab.onInit !== \"function\") {\n throw new Error('Sidebar tab \"onInit\" is not a function');\n }\n}\nclass SidebarProxy {\n get #impl() {\n return window.OCA?.Files?._sidebar?.();\n }\n get available() {\n return !!this.#impl;\n }\n get isOpen() {\n return this.#impl?.isOpen ?? false;\n }\n get activeTab() {\n return this.#impl?.activeTab;\n }\n get node() {\n return this.#impl?.node;\n }\n open(node, tab) {\n this.#impl?.open(node, tab);\n }\n close() {\n this.#impl?.close();\n }\n setActiveTab(tabId) {\n this.#impl?.setActiveTab(tabId);\n }\n registerTab(tab) {\n registerSidebarTab(tab);\n }\n getTabs(context) {\n return this.#impl?.getTabs(context) ?? [];\n }\n getActions(context) {\n return this.#impl?.getActions(context) ?? [];\n }\n registerAction(action) {\n registerSidebarAction(action);\n }\n}\nfunction getSidebar() {\n return new SidebarProxy();\n}\nconst InvalidFilenameErrorReason = Object.freeze({\n ReservedName: \"reserved name\",\n Character: \"character\",\n Extension: \"extension\"\n});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: InvalidFilenameErrorReason.Character, filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({ filename, segment: filename, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({ filename, segment: basename2, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: InvalidFilenameErrorReason.Extension, filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n) => `(${n})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nconst FilesSortingMode = Object.freeze({\n Name: \"basename\",\n Modified: \"mtime\",\n Size: \"size\"\n});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: FilesSortingMode.Name,\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n function basename2(node) {\n const name = node.displayname || node.attributes?.displayname || node.basename || \"\";\n if (node.type === FileType.Folder) {\n return name;\n }\n return name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n }\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== FilesSortingMode.Name ? [(v) => v[sortingOptions.sortingMode] ?? v.attributes[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === FilesSortingMode.Modified ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== FilesSortingMode.Modified && sortingOptions.sortingMode !== FilesSortingMode.Name ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nexport {\n Column,\n DefaultType,\n a as File,\n FileAction,\n FileListAction,\n FileListFilter,\n FileType,\n FilesSortingMode,\n b as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n c as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n formatFileSize,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenu,\n getNewFileMenuEntries,\n getSidebar,\n getSidebarActions,\n getSidebarTabs,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n registerSidebarAction,\n registerSidebarTab,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateColumn,\n validateFilename,\n validateView\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize as humanFileSize } from '@nextcloud/files'\nimport moment from 'moment'\nimport logger from '../logger.js'\nimport OC from './index.js'\nimport History from './util-history.js'\n\n/**\n * @param {any} t -\n */\nfunction chunkify(t) {\n\t// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288\n\tconst tz = []\n\tlet x = 0\n\tlet y = -1\n\tlet n = 0\n\tlet c\n\n\twhile (x < t.length) {\n\t\tc = t.charAt(x)\n\t\t// only include the dot in strings\n\t\tconst m = ((!n && c === '.') || (c >= '0' && c <= '9'))\n\t\tif (m !== n) {\n\t\t\t// next chunk\n\t\t\ty++\n\t\t\ttz[y] = ''\n\t\t\tn = m\n\t\t}\n\t\ttz[y] += c\n\t\tx++\n\t}\n\treturn tz\n}\n\n/**\n * Utility functions\n *\n * @namespace OC.Util\n */\nexport default {\n\n\tHistory,\n\n\t/**\n\t * @deprecated use https://nextcloud.github.io/nextcloud-files/functions/formatFileSize.html\n\t */\n\thumanFileSize,\n\n\t/**\n\t * Returns a file size in bytes from a humanly readable string\n\t * Makes 2kB to 2048.\n\t * Inspired by computerFileSize in helper.php\n\t *\n\t * @param {string} string file size in human-readable format\n\t * @return {number} or null if string could not be parsed\n\t */\n\tcomputerFileSize(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\treturn null\n\t\t}\n\n\t\tconst s = string.toLowerCase().trim()\n\t\tlet bytes = null\n\n\t\tconst bytesArray = {\n\t\t\tb: 1,\n\t\t\tk: 1024,\n\t\t\tkb: 1024,\n\t\t\tmb: 1024 * 1024,\n\t\t\tm: 1024 * 1024,\n\t\t\tgb: 1024 * 1024 * 1024,\n\t\t\tg: 1024 * 1024 * 1024,\n\t\t\ttb: 1024 * 1024 * 1024 * 1024,\n\t\t\tt: 1024 * 1024 * 1024 * 1024,\n\t\t\tpb: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t\tp: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t}\n\n\t\tconst matches = s.match(/^[\\s+]?([0-9]*)(\\.([0-9]+))?( +)?([kmgtp]?b?)$/i)\n\t\tif (matches !== null) {\n\t\t\tbytes = parseFloat(s)\n\t\t\tif (!isFinite(bytes)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t\tif (matches[5]) {\n\t\t\tbytes = bytes * bytesArray[matches[5]]\n\t\t}\n\n\t\tbytes = Math.round(bytes)\n\t\treturn bytes\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @param {string} format date format, see momentjs docs\n\t * @return {string} timestamp formatted as requested\n\t */\n\tformatDate(timestamp, format) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tformat = format || 'LLL'\n\t\treturn moment(timestamp).format(format)\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @return {string} human readable difference from now\n\t */\n\trelativeModifiedDate(timestamp) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tconst diff = moment().diff(moment(timestamp))\n\t\tif (diff >= 0 && diff < 45000) {\n\t\t\treturn t('core', 'seconds ago')\n\t\t}\n\t\treturn moment(timestamp).fromNow()\n\t},\n\n\t/**\n\t * Returns the width of a generic browser scrollbar\n\t *\n\t * @return {number} width of scrollbar\n\t */\n\tgetScrollBarWidth() {\n\t\tif (this._scrollBarWidth) {\n\t\t\treturn this._scrollBarWidth\n\t\t}\n\n\t\tconst inner = document.createElement('p')\n\t\tinner.style.width = '100%'\n\t\tinner.style.height = '200px'\n\n\t\tconst outer = document.createElement('div')\n\t\touter.style.position = 'absolute'\n\t\touter.style.top = '0px'\n\t\touter.style.left = '0px'\n\t\touter.style.visibility = 'hidden'\n\t\touter.style.width = '200px'\n\t\touter.style.height = '150px'\n\t\touter.style.overflow = 'hidden'\n\t\touter.appendChild(inner)\n\n\t\tdocument.body.appendChild(outer)\n\t\tconst w1 = inner.offsetWidth\n\t\touter.style.overflow = 'scroll'\n\t\tlet w2 = inner.offsetWidth\n\t\tif (w1 === w2) {\n\t\t\tw2 = outer.clientWidth\n\t\t}\n\n\t\tdocument.body.removeChild(outer)\n\n\t\tthis._scrollBarWidth = (w1 - w2)\n\n\t\treturn this._scrollBarWidth\n\t},\n\n\t/**\n\t * Remove the time component from a given date\n\t *\n\t * @param {Date} date date\n\t * @return {Date} date with stripped time\n\t */\n\tstripTime(date) {\n\t\t// FIXME: likely to break when crossing DST\n\t\t// would be better to use a library like momentJS\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t},\n\n\t/**\n\t * Compare two strings to provide a natural sort\n\t *\n\t * @param {string} a first string to compare\n\t * @param {string} b second string to compare\n\t * @return {number} -1 if b comes before a, 1 if a comes before b\n\t * or 0 if the strings are identical\n\t */\n\tnaturalSortCompare(a, b) {\n\t\tlet x\n\t\tconst aa = chunkify(a)\n\t\tconst bb = chunkify(b)\n\n\t\tfor (x = 0; aa[x] && bb[x]; x++) {\n\t\t\tif (aa[x] !== bb[x]) {\n\t\t\t\tconst aNum = Number(aa[x])\n\t\t\t\tconst bNum = Number(bb[x])\n\t\t\t\t// note: == is correct here to include null == undefined\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\tif (aNum == aa[x] && bNum == bb[x]) {\n\t\t\t\t\treturn aNum - bNum\n\t\t\t\t} else {\n\t\t\t\t\t// Note: This locale setting isn't supported by all browsers but for the ones\n\t\t\t\t\t// that do there will be more consistency between client-server sorting\n\t\t\t\t\treturn aa[x].localeCompare(bb[x], OC.getLanguage())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn aa.length - bb.length\n\t},\n\n\t/**\n\t * Calls the callback in a given interval until it returns true\n\t *\n\t * @param {Function} callback function to call on success\n\t * @param {number} interval in milliseconds\n\t */\n\twaitFor(callback, interval) {\n\t\tconst internalCallback = function() {\n\t\t\tif (callback() !== true) {\n\t\t\t\tsetTimeout(internalCallback, interval)\n\t\t\t}\n\t\t}\n\n\t\tinternalCallback()\n\t},\n\n\t/**\n\t * Checks if a cookie with the given name is present and is set to the provided value.\n\t *\n\t * @param {string} name name of the cookie\n\t * @param {string} value value of the cookie\n\t * @return {boolean} true if the cookie with the given name has the given value\n\t */\n\tisCookieSetToValue(name, value) {\n\t\tconst cookies = document.cookie.split(';')\n\t\tfor (let i = 0; i < cookies.length; i++) {\n\t\t\tconst cookie = cookies[i].split('=')\n\t\t\tif (cookie[0].trim() === name && cookie[1].trim() === value) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport _ from 'underscore'\nimport OC from './index.js'\n\n/**\n * Utility class for the history API,\n * includes fallback to using the URL hash when\n * the browser doesn't support the history API.\n *\n * @namespace OC.Util.History\n */\nexport default {\n\n\t_handlers: [],\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t * @param {boolean} [replace] whether to replace instead of pushing\n\t */\n\t_pushState(params, url, replace) {\n\t\tlet strParams\n\t\tif (typeof (params) === 'string') {\n\t\t\tstrParams = params\n\t\t} else {\n\t\t\tstrParams = OC.buildQueryString(params)\n\t\t}\n\n\t\tif (window.history.pushState) {\n\t\t\turl = url || location.pathname + '?' + strParams\n\t\t\t// Workaround for bug with SVG and window.history.pushState on Firefox < 51\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=652991\n\t\t\tconst isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n\t\t\tif (isFirefox && parseInt(navigator.userAgent.split('/').pop()) < 51) {\n\t\t\t\tconst patterns = document.querySelectorAll('[fill^=\"url(#\"], [stroke^=\"url(#\"], [filter^=\"url(#invert\"]')\n\t\t\t\tfor (let i = 0, ii = patterns.length, pattern; i < ii; i++) {\n\t\t\t\t\tpattern = patterns[i]\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.fill = pattern.style.fill\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.stroke = pattern.style.stroke\n\t\t\t\t\tpattern.removeAttribute('filter')\n\t\t\t\t\tpattern.setAttribute('filter', 'url(#invert)')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (replace) {\n\t\t\t\twindow.history.replaceState(params, '', url)\n\t\t\t} else {\n\t\t\t\twindow.history.pushState(params, '', url)\n\t\t\t}\n\t\t} else {\n\t\t\t// use URL hash for IE8\n\t\t\twindow.location.hash = '?' + strParams\n\t\t\t// inhibit next onhashchange that just added itself\n\t\t\t// to the event queue\n\t\t\tthis._cancelPop = true\n\t\t}\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used, using the params as query string\n\t */\n\tpushState(params, url) {\n\t\tthis._pushState(params, url, false)\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t */\n\treplaceState(params, url) {\n\t\tthis._pushState(params, url, true)\n\t},\n\n\t/**\n\t * Add a popstate handler\n\t *\n\t * @param {Function} handler handler\n\t */\n\taddOnPopStateHandler(handler) {\n\t\tthis._handlers.push(handler)\n\t},\n\n\t/**\n\t * Parse a query string from the hash part of the URL.\n\t * (workaround for IE8 / IE9)\n\t *\n\t * @return {string}\n\t */\n\t_parseHashQuery() {\n\t\tconst hash = window.location.hash\n\t\tconst pos = hash.indexOf('?')\n\t\tif (pos >= 0) {\n\t\t\treturn hash.substr(pos + 1)\n\t\t}\n\t\tif (hash.length) {\n\t\t\t// remove hash sign\n\t\t\treturn hash.substr(1)\n\t\t}\n\t\treturn ''\n\t},\n\n\t_decodeQuery(query) {\n\t\treturn query.replace(/\\+/g, ' ')\n\t},\n\n\t/**\n\t * Parse the query/search part of the URL.\n\t * Also try and parse it from the URL hash (for IE8)\n\t *\n\t * @return {object} map of parameters\n\t */\n\tparseUrlQuery() {\n\t\tconst query = this._parseHashQuery()\n\t\tlet params\n\t\t// try and parse from URL hash first\n\t\tif (query) {\n\t\t\tparams = OC.parseQueryString(this._decodeQuery(query))\n\t\t}\n\t\t// else read from query attributes\n\t\tparams = _.extend(params || {}, OC.parseQueryString(this._decodeQuery(location.search)))\n\t\treturn params || {}\n\t},\n\n\t_onPopState(e) {\n\t\tif (this._cancelPop) {\n\t\t\tthis._cancelPop = false\n\t\t\treturn\n\t\t}\n\t\tlet params\n\t\tif (!this._handlers.length) {\n\t\t\treturn\n\t\t}\n\t\tparams = (e && e.state)\n\t\tif (_.isString(params)) {\n\t\t\tparams = OC.parseQueryString(params)\n\t\t} else if (!params) {\n\t\t\tparams = this.parseUrlQuery() || {}\n\t\t}\n\t\tfor (let i = 0; i < this._handlers.length; i++) {\n\t\t\tthis._handlers[i](params)\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nlet webroot = window._oc_webroot\n\nif (typeof webroot === 'undefined') {\n\twebroot = location.pathname\n\tconst pos = webroot.indexOf('/index.php/')\n\tif (pos !== -1) {\n\t\twebroot = webroot.substr(0, pos)\n\t} else {\n\t\twebroot = webroot.substr(0, webroot.lastIndexOf('/'))\n\t}\n}\n\nexport default webroot\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\nimport {\n\tgetCanonicalLocale,\n\tgetLanguage,\n\tgetLocale,\n} from '@nextcloud/l10n'\nimport {\n\tbasename,\n\tdirname,\n\tencodePath,\n\tisSamePath,\n\tjoin,\n} from '@nextcloud/paths'\nimport {\n\tgenerateFilePath,\n\tgenerateOcsUrl,\n\tgenerateRemoteUrl,\n\tgenerateUrl,\n\tgetRootUrl,\n\timagePath,\n\tlinkTo,\n} from '@nextcloud/router'\nimport logger from '../logger.js'\nimport { isUserAdmin } from './admin.js'\nimport { appConfig } from './appconfig.js'\nimport Apps from './apps.js'\nimport appswebroots from './appswebroots.js'\nimport Backbone from './backbone.js'\nimport { getCapabilities } from './capabilities.js'\nimport Config from './config.js'\nimport {\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n} from './constants.js'\nimport { currentUser, getCurrentUser } from './currentuser.js'\nimport { debug } from './debug.js'\nimport Dialogs from './dialogs.js'\nimport EventSource from './eventsource.js'\nimport L10N from './l10n.js'\nimport {\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n} from './menu.js'\nimport * as MimeType from './mimeType.js'\nimport msg from './msg.js'\nimport Notification from './notification.js'\nimport PasswordConfirmation from './password-confirmation.js'\nimport Plugins from './plugins.js'\nimport {\n\tbuild as buildQueryString,\n\tparse as parseQueryString,\n} from './query-string.ts'\nimport { getRequestToken } from './requesttoken.ts'\nimport {\n\tlinkToRemoteBase,\n} from './routing.js'\nimport Settings from './settings.js'\nimport { theme } from './theme.js'\nimport Util from './util.js'\nimport webroot from './webroot.js'\n\n/** @namespace OC */\nexport default {\n\t/*\n\t * Constants\n\t */\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n\n\t/*\n\t * Deprecated helpers to be removed\n\t */\n\tApps,\n\tappConfig,\n\tappswebroots,\n\tBackbone,\n\tconfig: Config,\n\t/**\n\t * Currently logged in user or null if none\n\t *\n\t * @type {string}\n\t * @deprecated use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tcurrentUser,\n\tdialogs: Dialogs,\n\tEventSource,\n\tMimeType,\n\t/**\n\t * Returns the currently logged in user or null if there is no logged in\n\t * user (public page mode)\n\t *\n\t * @since 9.0.0\n\t * @deprecated 19.0.0 use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tgetCurrentUser,\n\tisUserAdmin,\n\tL10N,\n\n\t/**\n\t * This is already handled by `interceptRequests` in `core/src/init.js`.\n\t *\n\t * @deprecated 33.0.0 - unused by Nextcloud and only a stub remains. Just remove usage.\n\t */\n\tregisterXHRForErrorProcessing: () => {},\n\n\t/**\n\t * Capabilities\n\t *\n\t * @type {Array}\n\t * @deprecated 20.0.0 use @nextcloud/capabilities instead\n\t */\n\tgetCapabilities,\n\n\t/*\n\t * Legacy menu helpers\n\t */\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n\n\t/*\n\t * Path helpers\n\t */\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tbasename,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tencodePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tdirname,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tisSamePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tjoinPaths: join,\n\n\t/**\n\t * @deprecated 20.0.0 use `getCanonicalLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetCanonicalLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLanguage` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLanguage,\n\n\t// Query string helpers\n\tbuildQueryString,\n\tparseQueryString,\n\n\tmsg,\n\tNotification,\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\tPasswordConfirmation,\n\tPlugins,\n\t/**\n\t * @deprecated 25.0.0 Use Vue based (`@nextcloud/vue`) settings components instead\n\t */\n\tSettings,\n\ttheme,\n\tUtil,\n\tdebug,\n\t/**\n\t * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tfilePath: generateFilePath,\n\t/**\n\t * @deprecated 19.0.0 use `generateUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgenerateUrl,\n\t/**\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgetRootPath: getRootUrl,\n\t/**\n\t * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\timagePath,\n\trequestToken: getRequestToken(),\n\t/**\n\t * @deprecated 19.0.0 use `linkTo` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkTo,\n\t/**\n\t * @param {string} service service name\n\t * @param {number} version OCS API version\n\t * @return {string} OCS API base path\n\t * @deprecated 19.0.0 use `generateOcsUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToOCS: (service, version) => {\n\t\treturn generateOcsUrl(service, {}, {\n\t\t\tocsVersion: version || 1,\n\t\t}) + '/'\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `generateRemoteUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToRemote: generateRemoteUrl,\n\tlinkToRemoteBase,\n\t/**\n\t * Relative path to Nextcloud root.\n\t * For example: \"/nextcloud\"\n\t *\n\t * @type {string}\n\t *\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t * @see OC#getRootPath\n\t */\n\twebroot,\n}\n\n// Keep the request token prop in sync\nsubscribe('csrf-token-update', (e) => {\n\tOC.requestToken = e.token\n\n\t// Logging might help debug (Sentry) issues\n\tlogger.info('OC.requestToken changed', { token: e.token })\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities'\nimport logger from '../logger.js'\n\n/**\n * Returns the capabilities\n *\n * @return {Array} capabilities\n *\n * @since 14.0.0\n */\nexport function getCapabilities() {\n\tif (OC.debug) {\n\t\tlogger.warn('OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities')\n\t}\n\treturn realGetCapabilities()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Parses a URL query string into a JS map\n *\n * @param queryString - Query string in the format param1=1234¶m2=abcde¶m3=xyz\n * @return Object containing key/values matching the URL parameters\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function parse(queryString) {\n const params = new URLSearchParams(queryString);\n return Object.fromEntries(params.entries());\n}\n/**\n * Builds a URL query from a JS map.\n *\n * @param params - Object containing key/values matching the URL parameters\n * @return String containing a URL query (without question) mark\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function build(params) {\n if (!params) {\n return '';\n }\n const search = new URLSearchParams(params);\n return search.toString();\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tgetRootUrl as realGetRootUrl,\n} from '@nextcloud/router'\n\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\nexport function linkToRemoteBase(service) {\n\treturn realGetRootUrl() + '/remote.php/' + service\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { emit } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport logger from './logger.js';\nimport { fetchRequestToken, getRequestToken, } from './OC/requesttoken.ts';\n// This is always set, exception would be e.g. error pages where this is undefined\nconst { auto_logout: autoLogout, session_keepalive: keepSessionAlive, session_lifetime: sessionLifetime, } = loadState('core', 'config', {});\n/**\n * Calls the server periodically to ensure that session and CSRF\n * token doesn't expire\n */\nexport function initSessionHeartBeat() {\n registerAutoLogout();\n if (!keepSessionAlive) {\n logger.info('Session heartbeat disabled');\n return;\n }\n let interval = startPolling();\n window.addEventListener('online', async () => {\n logger.info('Browser is online again, resuming heartbeat');\n interval = startPolling();\n try {\n await poll();\n logger.info('Session token successfully updated after resuming network');\n // Let apps know we're online and requests will have the new token\n emit('networkOnline', {\n success: true,\n });\n }\n catch (error) {\n logger.error('could not update session token after resuming network', { error });\n // Let apps know we're online but requests might have an outdated token\n emit('networkOnline', {\n success: false,\n });\n }\n });\n window.addEventListener('offline', () => {\n logger.info('Browser is offline, stopping heartbeat');\n // Let apps know we're offline\n emit('networkOffline', {});\n clearInterval(interval);\n logger.info('Session heartbeat polling stopped');\n });\n}\n/**\n * Get interval in seconds\n */\nfunction getInterval() {\n const interval = sessionLifetime\n ? Math.floor(sessionLifetime / 2)\n : 900;\n // minimum one minute, max 24 hours, default 15 minutes\n return Math.min(24 * 3600, Math.max(60, interval));\n}\n/**\n * Poll the CSRF token for changes.\n * This will also extend the current session if needed.\n */\nasync function poll() {\n try {\n await fetchRequestToken();\n }\n catch (error) {\n logger.error('session heartbeat failed', { error });\n }\n}\n/**\n * Start an window interval with the polling as the callback.\n *\n * @return The interval id\n */\nfunction startPolling() {\n const interval = window.setInterval(poll, getInterval() * 1000);\n logger.info('session heartbeat polling started');\n return interval;\n}\n/**\n * If enabled this will register event listeners to track if a user is active.\n * If not the user will be automatically logged out after the configured IDLE time.\n */\nfunction registerAutoLogout() {\n if (!autoLogout || !getCurrentUser()) {\n return;\n }\n let lastActive = Date.now();\n window.addEventListener('mousemove', () => {\n lastActive = Date.now();\n localStorage.setItem('lastActive', JSON.stringify(lastActive));\n });\n window.addEventListener('touchstart', () => {\n lastActive = Date.now();\n localStorage.setItem('lastActive', JSON.stringify(lastActive));\n });\n window.addEventListener('storage', (event) => {\n if (event.key !== 'lastActive') {\n return;\n }\n if (event.newValue === null) {\n return;\n }\n lastActive = JSON.parse(event.newValue);\n });\n let intervalId = 0;\n const logoutCheck = () => {\n const timeout = Date.now() - (sessionLifetime ?? 86400) * 1000;\n if (lastActive < timeout) {\n clearTimeout(intervalId);\n logger.info('Inactivity timout reached, logging out');\n const logoutUrl = generateUrl('/logout') + '?requesttoken=' + encodeURIComponent(getRequestToken());\n window.location.href = logoutUrl;\n }\n };\n intervalId = window.setInterval(logoutCheck, 1000);\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\nimport logger from '../logger.js';\n/**\n *\n * @param text\n */\nfunction unsecuredCopyToClipboard(text) {\n const textArea = document.createElement('textarea');\n const textAreaContent = document.createTextNode(text);\n textArea.appendChild(textAreaContent);\n document.body.appendChild(textArea);\n textArea.focus({ preventScroll: true });\n textArea.select();\n try {\n // This is a fallback for browsers that do not support the Clipboard API\n // execCommand is deprecated, but it is the only way to copy text to the clipboard in some browsers\n document.execCommand('copy');\n }\n catch (error) {\n window.prompt(t('core', 'Clipboard not available, please copy manually'), text);\n logger.error('files Unable to copy to clipboard', { error });\n }\n document.body.removeChild(textArea);\n}\n/**\n *\n */\nfunction initFallbackClipboardAPI() {\n if (!window.navigator?.clipboard?.writeText) {\n logger.info('Clipboard API not available, using fallback');\n Object.defineProperty(window.navigator, 'clipboard', {\n value: {\n writeText: unsecuredCopyToClipboard,\n },\n writable: false,\n });\n }\n}\nexport { initFallbackClipboardAPI };\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\n/**\n *\n * @param {string} url the URL to check\n * @return {boolean}\n */\nfunction isRelativeUrl(url) {\n\treturn !url.startsWith('https://') && !url.startsWith('http://')\n}\n\n/**\n * @param {string} url The URL to check\n * @return {boolean} true if the URL points to this nextcloud instance\n */\nfunction isNextcloudUrl(url) {\n\tconst nextcloudBaseUrl = window.location.protocol + '//' + window.location.host + getRootUrl()\n\t// if the URL is absolute and starts with the baseUrl+rootUrl\n\t// OR if the URL is relative and starts with rootUrl\n\treturn url.startsWith(nextcloudBaseUrl)\n\t\t|| (isRelativeUrl(url) && url.startsWith(getRootUrl()))\n}\n\n/**\n * Check if a user was logged in but is now logged-out.\n * If this is the case then the user will be forwarded to the login page.\n *\n * @return {Promise}\n */\nasync function checkLoginStatus() {\n\t// skip if no logged in user\n\tif (getCurrentUser() === null) {\n\t\treturn\n\t}\n\n\t// skip if already running\n\tif (checkLoginStatus.running === true) {\n\t\treturn\n\t}\n\n\t// only run one request in parallel\n\tcheckLoginStatus.running = true\n\n\ttry {\n\t\t// We need to check this as a 401 in the first place could also come from other reasons\n\t\tconst { status } = await window.fetch(generateUrl('/apps/files'))\n\t\tif (status === 401) {\n\t\t\tlogger.warn('User session was terminated, forwarding to login page.')\n\t\t\tawait wipeBrowserStorages()\n\t\t\twindow.location = generateUrl('/login?redirect_url={url}', {\n\t\t\t\turl: window.location.pathname + window.location.search + window.location.hash,\n\t\t\t})\n\t\t}\n\t} catch (error) {\n\t\tlogger.warn('Could not check login-state', { error })\n\t} finally {\n\t\tdelete checkLoginStatus.running\n\t}\n}\n\n/**\n * Clear all Browser storages connected to current origin.\n *\n * @return {Promise}\n */\nexport async function wipeBrowserStorages() {\n\ttry {\n\t\twindow.localStorage.clear()\n\t\twindow.sessionStorage.clear()\n\t\tconst indexedDBList = await window.indexedDB.databases()\n\t\tfor (const indexedDB of indexedDBList) {\n\t\t\tawait window.indexedDB.deleteDatabase(indexedDB.name)\n\t\t}\n\t\tlogger.debug('Browser storages cleared')\n\t} catch (error) {\n\t\tlogger.error('Could not clear browser storages', { error })\n\t}\n}\n\n/**\n * Intercept XMLHttpRequest and fetch API calls to add X-Requested-With header\n *\n * This is also done in @nextcloud/axios but not all requests pass through that\n */\nexport function interceptRequests() {\n\tXMLHttpRequest.prototype.open = (function(open) {\n\t\treturn function(method, url) {\n\t\t\topen.apply(this, arguments)\n\t\t\tif (isNextcloudUrl(url)) {\n\t\t\t\tif (!this.getResponseHeader('X-Requested-With')) {\n\t\t\t\t\tthis.setRequestHeader('X-Requested-With', 'XMLHttpRequest')\n\t\t\t\t}\n\t\t\t\tthis.addEventListener('loadend', function() {\n\t\t\t\t\tif (this.status === 401) {\n\t\t\t\t\t\tcheckLoginStatus()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})(XMLHttpRequest.prototype.open)\n\n\twindow.fetch = (function(fetch) {\n\t\treturn async (resource, options) => {\n\t\t\t// fetch allows the `input` to be either a Request object or any stringifyable value\n\t\t\tif (!isNextcloudUrl(resource.url ?? resource.toString())) {\n\t\t\t\treturn await fetch(resource, options)\n\t\t\t}\n\t\t\tif (!options) {\n\t\t\t\toptions = {}\n\t\t\t}\n\t\t\tif (!options.headers) {\n\t\t\t\toptions.headers = new Headers()\n\t\t\t}\n\n\t\t\tif (options.headers instanceof Headers && !options.headers.has('X-Requested-With')) {\n\t\t\t\toptions.headers.append('X-Requested-With', 'XMLHttpRequest')\n\t\t\t} else if (options.headers instanceof Object && !options.headers['X-Requested-With']) {\n\t\t\t\toptions.headers['X-Requested-With'] = 'XMLHttpRequest'\n\t\t\t}\n\n\t\t\tconst response = await fetch(resource, options)\n\t\t\tif (response.status === 401) {\n\t\t\t\tcheckLoginStatus()\n\t\t\t}\n\t\t\treturn response\n\t\t}\n\t})(window.fetch)\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { isRTL } from '@nextcloud/l10n'\nimport $ from 'jquery'\nimport moment from 'moment'\n/* globals Snap */\nimport _ from 'underscore'\nimport { setUp as setUpContactsMenu } from './components/ContactsMenu.js'\nimport { setUp as setUpMainMenu } from './components/MainMenu.js'\nimport { setUp as setUpUserMenu } from './components/UserMenu.js'\nimport OC from './OC/index.js'\nimport { initSessionHeartBeat } from './session-heartbeat.ts'\nimport { initFallbackClipboardAPI } from './utils/ClipboardFallback.ts'\nimport { interceptRequests } from './utils/xhr-request.js'\n\n// keep in sync with core/css/variables.scss\nconst breakpointMobileWidth = 1024\n\n/**\n *\n */\nfunction initLiveTimestamps() {\n\t// Update live timestamps every 30 seconds\n\tsetInterval(() => {\n\t\t$('.live-relative-timestamp').each(function() {\n\t\t\tconst timestamp = parseInt($(this).attr('data-timestamp'), 10)\n\t\t\t$(this).text(moment(timestamp).fromNow())\n\t\t})\n\t}, 30 * 1000)\n}\n\n/**\n * Moment doesn't have aliases for every locale and doesn't parse some locale IDs correctly so we need to alias them\n */\nconst localeAliases = {\n\tzh: 'zh-cn',\n\tzh_Hans: 'zh-cn',\n\tzh_Hans_CN: 'zh-cn',\n\tzh_Hans_HK: 'zh-cn',\n\tzh_Hans_MO: 'zh-cn',\n\tzh_Hans_SG: 'zh-cn',\n\tzh_Hant: 'zh-hk',\n\tzh_Hant_HK: 'zh-hk',\n\tzh_Hant_MO: 'zh-mo',\n\tzh_Hant_TW: 'zh-tw',\n}\nlet locale = OC.getLocale()\nif (Object.hasOwn(localeAliases, locale)) {\n\tlocale = localeAliases[locale]\n}\n\n/**\n * Set users locale to moment.js as soon as possible\n */\nmoment.locale(locale)\n\n/**\n * Initializes core\n */\nexport function initCore() {\n\tconst SNAPPER_OPEN = isRTL() ? 'right' : 'left'\n\tconst SNAPPER_CLOSE = isRTL() ? 'left' : 'right'\n\n\tinterceptRequests()\n\tinitFallbackClipboardAPI()\n\n\tinitSessionHeartBeat()\n\n\tOC.registerMenu($('#expand'), $('#expanddiv'), false, true)\n\n\t// toggle for menus\n\t$(document).on('mouseup.closemenus', (event) => {\n\t\tconst $el = $(event.target)\n\t\tif ($el.closest('.menu').length || $el.closest('.menutoggle').length) {\n\t\t\t// don't close when clicking on the menu directly or a menu toggle\n\t\t\treturn false\n\t\t}\n\n\t\tOC.hideMenus()\n\t})\n\n\tsetUpMainMenu()\n\tsetUpUserMenu()\n\tsetUpContactsMenu()\n\n\t// just add snapper for logged in users\n\t// and if the app doesn't handle the nav slider itself\n\tif ($('#app-navigation').length && !$('html').hasClass('lte9')\n\t\t&& !$('#app-content').hasClass('no-snapper')) {\n\t\t// App sidebar on mobile\n\t\tconst snapper = new Snap({\n\t\t\telement: document.getElementById('app-content'),\n\t\t\tdisable: SNAPPER_CLOSE,\n\t\t\tmaxPosition: 300, // $navigation-width\n\t\t\tminPosition: -300, // $navigation-width for RTL\n\t\t\tminDragDistance: 100,\n\t\t})\n\n\t\t$('#app-content').prepend('
')\n\n\t\t// keep track whether snapper is currently animating, and\n\t\t// prevent to call open or close while that is the case\n\t\t// to avoid duplicating events (snap.js doesn't check this)\n\t\tlet animating = false\n\t\tsnapper.on('animating', () => {\n\t\t\t// we need this because the trigger button\n\t\t\t// is also implicitly wired to close by snapper\n\t\t\tanimating = true\n\t\t})\n\t\tsnapper.on('animated', () => {\n\t\t\tanimating = false\n\t\t})\n\t\tsnapper.on('start', () => {\n\t\t\t// we need this because dragging triggers that\n\t\t\tanimating = true\n\t\t})\n\t\tsnapper.on('end', () => {\n\t\t\t// we need this because dragging stop triggers that\n\t\t\tanimating = false\n\t\t})\n\t\tsnapper.on('open', () => {\n\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\t$appNavigation.attr('aria-hidden', 'false')\n\t\t})\n\t\tsnapper.on('close', () => {\n\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\t$appNavigation.attr('aria-hidden', 'true')\n\t\t})\n\n\t\t// These are necessary because calling open or close\n\t\t// on snapper during an animation makes it trigger an\n\t\t// unfinishable animation, which itself will continue\n\t\t// triggering animating events and cause high CPU load,\n\t\t//\n\t\t// Ref https://github.com/jakiestfu/Snap.js/issues/216\n\t\tconst oldSnapperOpen = snapper.open\n\t\tconst oldSnapperClose = snapper.close\n\t\tconst _snapperOpen = () => {\n\t\t\tif (animating || snapper.state().state !== 'closed') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\toldSnapperOpen(SNAPPER_OPEN)\n\t\t}\n\n\t\tconst _snapperClose = () => {\n\t\t\tif (animating || snapper.state().state === 'closed') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\toldSnapperClose()\n\t\t}\n\n\t\t// Needs to be deferred to properly catch in-between\n\t\t// events that snap.js is triggering after dragging.\n\t\t//\n\t\t// Skipped when running unit tests as we are not testing\n\t\t// the snap.js workarounds...\n\t\tif (!window.TESTING) {\n\t\t\tsnapper.open = () => {\n\t\t\t\t_.defer(_snapperOpen)\n\t\t\t}\n\t\t\tsnapper.close = () => {\n\t\t\t\t_.defer(_snapperClose)\n\t\t\t}\n\t\t}\n\n\t\t$('#app-navigation-toggle').click(() => {\n\t\t\t// close is implicit in the button by snap.js\n\t\t\tif (snapper.state().state !== SNAPPER_OPEN) {\n\t\t\t\tsnapper.open(SNAPPER_OPEN)\n\t\t\t}\n\t\t})\n\t\t$('#app-navigation-toggle').keypress(() => {\n\t\t\tif (snapper.state().state === SNAPPER_OPEN) {\n\t\t\t\tsnapper.close()\n\t\t\t} else {\n\t\t\t\tsnapper.open(SNAPPER_OPEN)\n\t\t\t}\n\t\t})\n\n\t\t// close sidebar when switching navigation entry\n\t\tconst $appNavigation = $('#app-navigation')\n\t\t$appNavigation.attr('aria-hidden', 'true')\n\t\t$appNavigation.delegate('a, :button', 'click', (event) => {\n\t\t\tconst $target = $(event.target)\n\t\t\t// don't hide navigation when changing settings or adding things\n\t\t\tif ($target.is('.app-navigation-noclose')\n\t\t\t\t|| $target.closest('.app-navigation-noclose').length) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif ($target.is('.app-navigation-entry-utils-menu-button')\n\t\t\t\t|| $target.closest('.app-navigation-entry-utils-menu-button').length) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif ($target.is('.add-new')\n\t\t\t\t|| $target.closest('.add-new').length) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif ($target.is('#app-settings')\n\t\t\t\t|| $target.closest('#app-settings').length) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsnapper.close()\n\t\t})\n\n\t\tlet navigationBarSlideGestureEnabled = false\n\t\tlet navigationBarSlideGestureAllowed = true\n\t\tlet navigationBarSlideGestureEnablePending = false\n\n\t\tOC.allowNavigationBarSlideGesture = () => {\n\t\t\tnavigationBarSlideGestureAllowed = true\n\n\t\t\tif (navigationBarSlideGestureEnablePending) {\n\t\t\t\tsnapper.enable()\n\n\t\t\t\tnavigationBarSlideGestureEnabled = true\n\t\t\t\tnavigationBarSlideGestureEnablePending = false\n\t\t\t}\n\t\t}\n\n\t\tOC.disallowNavigationBarSlideGesture = () => {\n\t\t\tnavigationBarSlideGestureAllowed = false\n\n\t\t\tif (navigationBarSlideGestureEnabled) {\n\t\t\t\tconst endCurrentDrag = true\n\t\t\t\tsnapper.disable(endCurrentDrag)\n\n\t\t\t\tnavigationBarSlideGestureEnabled = false\n\t\t\t\tnavigationBarSlideGestureEnablePending = true\n\t\t\t}\n\t\t}\n\n\t\tconst toggleSnapperOnSize = () => {\n\t\t\tif ($(window).width() > breakpointMobileWidth) {\n\t\t\t\t$appNavigation.attr('aria-hidden', 'false')\n\t\t\t\tsnapper.close()\n\t\t\t\tsnapper.disable()\n\n\t\t\t\tnavigationBarSlideGestureEnabled = false\n\t\t\t\tnavigationBarSlideGestureEnablePending = false\n\t\t\t} else if (navigationBarSlideGestureAllowed) {\n\t\t\t\tsnapper.enable()\n\n\t\t\t\tnavigationBarSlideGestureEnabled = true\n\t\t\t\tnavigationBarSlideGestureEnablePending = false\n\t\t\t} else {\n\t\t\t\tnavigationBarSlideGestureEnablePending = true\n\t\t\t}\n\t\t}\n\n\t\t$(window).resize(_.debounce(toggleSnapperOnSize, 250))\n\n\t\t// initial call\n\t\ttoggleSnapperOnSize()\n\t}\n\n\tinitLiveTimestamps()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { translatePlural as n, translate as t } from '@nextcloud/l10n'\nimport Vue from 'vue'\nimport AppMenu from './AppMenu.vue'\n\n/**\n *\n */\nexport function setUp() {\n\tVue.mixin({\n\t\tmethods: {\n\t\t\tt,\n\t\t\tn,\n\t\t},\n\t})\n\n\tconst container = document.getElementById('header-start__appmenu')\n\tif (!container) {\n\t\t// no container, possibly we're on a public page\n\t\treturn\n\t}\n\tconst AppMenuApp = Vue.extend(AppMenu)\n\tconst appMenu = new AppMenuApp({}).$mount(container)\n\n\tObject.assign(OC, {\n\t\tsetNavigationCounter(id, counter) {\n\t\t\tappMenu.setNavigationCounter(id, counter)\n\t\t},\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport AccountMenu from '../views/AccountMenu.vue'\n\n/**\n *\n */\nexport function setUp() {\n\tconst mountPoint = document.getElementById('user-menu')\n\tif (mountPoint) {\n\t\tnew Vue({\n\t\t\tname: 'AccountMenuRoot',\n\t\t\tel: mountPoint,\n\t\t\trender: (h) => h(AccountMenu),\n\t\t})\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport ContactsMenu from '../views/ContactsMenu.vue'\nimport ContactsMenuService from '../services/ContactsMenuService.ts'\n\n/**\n * @todo move to contacts menu code https://github.com/orgs/nextcloud/projects/31#card-21213129\n */\nexport function setUp() {\n\tconst mountPoint = document.getElementById('contactsmenu')\n\n\tif (mountPoint) {\n\t\twindow.OC.ContactsMenu = new ContactsMenuService()\n\n\t\tnew Vue({\n\t\t\tname: 'ContactsMenuRoot',\n\t\t\tel: mountPoint,\n\t\t\trender: (h) => h(ContactsMenu),\n\t\t})\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\n/**\n * Set the page heading\n *\n * @param {string} heading page title from the history api\n * @since 27.0.0\n */\nexport function setPageHeading(heading) {\n\tconst headingEl = document.getElementById('page-heading-level-1')\n\tif (headingEl) {\n\t\theadingEl.textContent = heading\n\t}\n}\nexport default {\n\t/**\n\t * @return {boolean} Whether the user opted-out of shortcuts so that they should not be registered\n\t */\n\tdisableKeyboardShortcuts() {\n\t\treturn loadState('theming', 'shortcutsDisabled', false)\n\t},\n\tsetPageHeading,\n}\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { confirmPassword, isPasswordConfirmationRequired, PwdConfirmationMode } from '@nextcloud/password-confirmation';\nimport { generateOcsUrl } from '@nextcloud/router';\n/**\n * @param method - 'post' or 'delete'\n * @param endpoint - endpoint endpoint\n * @param options - destructuring object\n * @param options.data - option data\n * @param options.success - success callback\n * @param options.error - error callback\n */\nasync function call(method, endpoint, options = {}) {\n if ((method === 'post' || method === 'delete') && isPasswordConfirmationRequired(PwdConfirmationMode.Lax)) {\n await confirmPassword();\n }\n try {\n const { data } = await axios.request({\n method: method.toLowerCase(),\n url: generateOcsUrl('apps/provisioning_api/api/v1/config/apps') + endpoint,\n data: options.data || {},\n });\n options.success?.(data.ocs.data);\n }\n catch (error) {\n options.error?.(error);\n }\n}\n/**\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @since 11.0.0\n */\nexport function getApps(options) {\n call('get', '', options);\n}\n/**\n * @param app app id\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function getKeys(app, options) {\n call('get', '/' + app, options);\n}\n/**\n * @param app app id\n * @param key key\n * @param defaultValue default value\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function getValue(app, key, defaultValue, options) {\n options = options || {};\n options.data = {\n defaultValue,\n };\n call('get', '/' + app + '/' + key, options);\n}\n/**\n * @param app app id\n * @param key key\n * @param value value\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function setValue(app, key, value, options) {\n options = options || {};\n options.data = {\n value,\n };\n call('post', '/' + app + '/' + key, options);\n}\n/**\n * @param app app id\n * @param key key\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function deleteKey(app, key, options) {\n call('delete', '/' + app + '/' + key, options);\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport escapeHTML from 'escape-html'\n\n/**\n * @typedef TypeDefinition\n * @function action This action is executed to let the user select a resource\n * @param {string} icon Contains the icon css class for the type\n * @function Object() { [native code] }\n */\n\n/**\n * @type {TypeDefinition[]}\n */\nconst types = {}\n\n/**\n * Those translations will be used by the vue component but they should be shipped with the server\n * FIXME: Those translations should be added to the library\n *\n * @return {Array}\n */\nexport function l10nProjects() {\n\treturn [\n\t\tt('core', 'Add to a project'),\n\t\tt('core', 'Show details'),\n\t\tt('core', 'Hide details'),\n\t\tt('core', 'Rename project'),\n\t\tt('core', 'Failed to rename the project'),\n\t\tt('core', 'Failed to create a project'),\n\t\tt('core', 'Failed to add the item to the project'),\n\t\tt('core', 'Connect items to a project to make them easier to find'),\n\t\tt('core', 'Type to search for existing projects'),\n\t]\n}\n\nexport default {\n\t/**\n\t *\n\t * @param {string} type type\n\t * @param {TypeDefinition} typeDefinition typeDefinition\n\t */\n\tregisterType(type, typeDefinition) {\n\t\ttypes[type] = typeDefinition\n\t},\n\ttrigger(type) {\n\t\treturn types[type].action()\n\t},\n\tgetTypes() {\n\t\treturn Object.keys(types)\n\t},\n\tgetIcon(type) {\n\t\treturn types[type].typeIconClass || ''\n\t},\n\tgetLabel(type) {\n\t\treturn escapeHTML(types[type].typeString || type)\n\t},\n\tgetLink(type, id) {\n\t\t/* TODO: Allow action to be executed instead of href as well */\n\t\treturn typeof types[type] !== 'undefined' ? types[type].link(id) : ''\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n * Detects links:\n * Either the http(s) protocol is given or two strings, basically limited to ascii with the last\n * word being at least one digit long,\n * followed by at least another character\n *\n * The downside: anything not ascii is excluded. Not sure how common it is in areas using different\n * alphabets… the upside: fake domains with similar looking characters won't be formatted as links\n *\n * This is a copy of the backend regex in IURLGenerator, make sure to adjust both when changing\n */\nconst urlRegex = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\n/**\n * Converts plain text to rich text\n *\n * @param content - The plain text content\n */\nexport function plainToRich(content) {\n return formatLinksRich(content);\n}\n/**\n * Converts rich text to plain text\n *\n * @param content - The rich text content\n */\nexport function richToPlain(content) {\n return formatLinksPlain(content);\n}\n/**\n * Format links in the given content to rich text links\n *\n * @param content - The content containing plain text URLs\n */\nexport function formatLinksRich(content) {\n return content.replace(urlRegex, function (_, leadingSpace, protocol, url, trailingSpace) {\n let linkText = url;\n if (!protocol) {\n protocol = 'https://';\n }\n else if (protocol === 'http://') {\n linkText = protocol + url;\n }\n return leadingSpace + '' + linkText + '' + trailingSpace;\n });\n}\n/**\n * Format links in the given content to plain text links\n *\n * @param content - The content containing rich text URLs\n */\nexport function formatLinksPlain(content) {\n const el = document.createElement('div');\n el.innerHTML = content;\n el.querySelectorAll('a').forEach((anchor) => {\n anchor.replaceWith(document.createTextNode(anchor.getAttribute('href') || ''));\n });\n return el.innerHTML;\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateFilePath } from '@nextcloud/router'\n\nconst loadedScripts = {}\nconst loadedStylesheets = {}\n/**\n * @namespace OCP\n * @class Loader\n */\nexport default {\n\n\t/**\n\t * Load a script asynchronously\n\t *\n\t * @param {string} app the app name\n\t * @param {string} file the script file name\n\t * @return {Promise}\n\t */\n\tloadScript(app, file) {\n\t\tconst key = app + file\n\t\tif (Object.hasOwn(loadedScripts, key)) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tloadedScripts[key] = true\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\tconst scriptPath = generateFilePath(app, 'js', file)\n\t\t\tconst script = document.createElement('script')\n\t\t\tscript.src = scriptPath\n\t\t\tscript.setAttribute('nonce', btoa(OC.requestToken))\n\t\t\tscript.onload = () => resolve()\n\t\t\tscript.onerror = () => reject(new Error(`Failed to load script from ${scriptPath}`))\n\t\t\tdocument.head.appendChild(script)\n\t\t})\n\t},\n\n\t/**\n\t * Load a stylesheet file asynchronously\n\t *\n\t * @param {string} app the app name\n\t * @param {string} file the script file name\n\t * @return {Promise}\n\t */\n\tloadStylesheet(app, file) {\n\t\tconst key = app + file\n\t\tif (Object.hasOwn(loadedStylesheets, key)) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tloadedStylesheets[key] = true\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\tconst stylePath = generateFilePath(app, 'css', file)\n\t\t\tconst link = document.createElement('link')\n\t\t\tlink.href = stylePath\n\t\t\tlink.type = 'text/css'\n\t\t\tlink.rel = 'stylesheet'\n\t\t\tlink.onload = () => resolve()\n\t\t\tlink.onerror = () => reject(new Error(`Failed to load stylesheet from ${stylePath}`))\n\t\t\tdocument.head.appendChild(link)\n\t\t})\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tshowError,\n\tshowInfo, showMessage,\n\tshowSuccess,\n\tshowWarning,\n} from '@nextcloud/dialogs'\n\n/** @typedef {import('toastify-js')} Toast */\n\nexport default {\n\t/**\n\t * @deprecated 19.0.0 use `showSuccess` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\tsuccess(text, options) {\n\t\treturn showSuccess(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showWarning` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\twarning(text, options) {\n\t\treturn showWarning(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showError` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\terror(text, options) {\n\t\treturn showError(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showInfo` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\tinfo(text, options) {\n\t\treturn showInfo(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showMessage` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\tmessage(text, options) {\n\t\treturn showMessage(text, options)\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport Accessibility from './accessibility.js'\nimport * as AppConfig from './appconfig.ts'\nimport Collaboration from './collaboration.js'\nimport * as Comments from './comments.ts'\nimport Loader from './loader.js'\nimport Toast from './toast.js'\n\n/** @namespace OCP */\nexport default {\n\tAccessibility,\n\tAppConfig,\n\tCollaboration,\n\t/**\n\t * @deprecated 33.0.0\n\t */\n\tComments,\n\tInitialState: {\n\t\t/**\n\t\t * @deprecated 18.0.0 add https://www.npmjs.com/package/@nextcloud/initial-state to your app\n\t\t */\n\t\tloadState,\n\t},\n\tLoader,\n\t/**\n\t * @deprecated 19.0.0 use the `@nextcloud/dialogs` package instead\n\t */\n\tToast,\n}\n","\n import API from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../css-loader/dist/cjs.js!./jquery-ui.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../css-loader/dist/cjs.js!./jquery-ui.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../css-loader/dist/cjs.js!./jquery-ui.theme.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../css-loader/dist/cjs.js!./jquery-ui.theme.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../css-loader/dist/cjs.js!./select2.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../css-loader/dist/cjs.js!./select2.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../css-loader/dist/cjs.js!./strengthify.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../css-loader/dist/cjs.js!./strengthify.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/* eslint-disable @nextcloud/no-deprecations */\n// END TODO\nimport Backbone from 'backbone'\nimport ClipboardJS from 'clipboard'\nimport { dav } from 'davclient.js'\nimport Handlebars from 'handlebars'\nimport $ from 'jquery'\nimport moment from 'moment'\nimport _ from 'underscore'\nimport { initCore } from './init.js'\nimport OC from './OC/index.js'\nimport { getRequestToken } from './OC/requesttoken.ts'\nimport OCA from './OCA/index.js'\nimport OCP from './OCP/index.js'\n\n// TODO: switch to `jquery-ui` package and import widgets and effects individually\n// `jquery-ui-dist` is used as a workaround for the issue of missing effects\nimport 'jquery-ui-dist/jquery-ui.js'\nimport 'jquery-ui-dist/jquery-ui.css'\nimport 'jquery-ui-dist/jquery-ui.theme.css'\nimport 'select2'\nimport 'select2/select2.css'\nimport 'snap.js/dist/snap.js'\nimport 'strengthify'\nimport 'strengthify/strengthify.css'\n\n/**\n *\n */\nfunction warnIfNotTesting() {\n\tif (window.TESTING === undefined) {\n\t\t// eslint-disable-next-line no-console\n\t\tOC.debug && console.warn.apply(console, arguments)\n\t}\n}\n\n/**\n * Mark a function as deprecated and automatically\n * warn if used!\n *\n * @param {Function} func the library to deprecate\n * @param {string} funcName the name of the library\n * @param {number} version the version this gets removed\n * @return {Function}\n */\nfunction deprecate(func, funcName, version) {\n\tconst oldFunc = func\n\tconst newFunc = function() {\n\t\twarnIfNotTesting(`The ${funcName} library is deprecated! It will be removed in nextcloud ${version}.`)\n\t\treturn oldFunc.apply(this, arguments)\n\t}\n\tObject.assign(newFunc, oldFunc)\n\treturn newFunc\n}\n\n/**\n *\n * @param global\n * @param cb\n * @param msg\n */\nfunction setDeprecatedProp(global, cb, msg) {\n\t(Array.isArray(global) ? global : [global]).forEach((global) => {\n\t\tif (window[global] !== undefined) {\n\t\t\tdelete window[global]\n\t\t}\n\t\tObject.defineProperty(window, global, {\n\t\t\tget: () => {\n\t\t\t\tif (msg) {\n\t\t\t\t\twarnIfNotTesting(`${global} is deprecated: ${msg}`)\n\t\t\t\t} else {\n\t\t\t\t\twarnIfNotTesting(`${global} is deprecated`)\n\t\t\t\t}\n\n\t\t\t\treturn cb()\n\t\t\t},\n\t\t})\n\t})\n}\n\nwindow._ = _\nsetDeprecatedProp(['$', 'jQuery'], () => $, 'The global jQuery is deprecated. It will be removed in a later versions without another warning. Please ship your own.')\nsetDeprecatedProp('Backbone', () => Backbone, 'please ship your own, this will be removed in Nextcloud 20')\nsetDeprecatedProp(['Clipboard', 'ClipboardJS'], () => ClipboardJS, 'please ship your own, this will be removed in Nextcloud 20')\nwindow.dav = dav\nsetDeprecatedProp('Handlebars', () => Handlebars, 'please ship your own, this will be removed in Nextcloud 20')\nsetDeprecatedProp('moment', () => moment, 'please ship your own, this will be removed in Nextcloud 20')\n\nwindow.OC = OC\nsetDeprecatedProp('initCore', () => initCore, 'this is an internal function')\nsetDeprecatedProp('oc_appswebroots', () => OC.appswebroots, 'use OC.appswebroots instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('oc_config', () => OC.config, 'use OC.config instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('oc_current_user', () => OC.getCurrentUser().uid, 'use OC.getCurrentUser().uid instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('oc_debug', () => OC.debug, 'use OC.debug instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('oc_defaults', () => OC.theme, 'use OC.theme instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('oc_isadmin', OC.isUserAdmin, 'use OC.isUserAdmin() instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('oc_requesttoken', () => getRequestToken(), 'use OC.requestToken instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('oc_webroot', () => OC.webroot, 'use OC.getRootPath() instead, this will be removed in Nextcloud 20')\nsetDeprecatedProp('OCDialogs', () => OC.dialogs, 'use OC.dialogs instead, this will be removed in Nextcloud 20')\nwindow.OCP = OCP\nwindow.OCA = OCA\n$.fn.select2 = deprecate($.fn.select2, 'select2', 19)\n\n/**\n * translate a string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} text the string to translate\n * @param [vars] map of placeholder key to value\n * @param {number} [count] number to replace %n with\n * @return {string}\n */\nwindow.t = _.bind(OC.L10N.translate, OC.L10N)\n\n/**\n * translate a string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} text_singular the string to translate for exactly one object\n * @param {string} text_plural the string to translate for n objects\n * @param {number} count number to determine whether to use singular or plural\n * @param [vars] map of placeholder key to value\n * @return {string} Translated string\n */\nwindow.n = _.bind(OC.L10N.translatePlural, OC.L10N)\n","function isA11yActivation(event) {\n if (event.type === \"click\") {\n return true;\n }\n if (event.type === \"keydown\" && event.key === \"Enter\") {\n return true;\n }\n return false;\n}\nexport {\n isA11yActivation\n};\n//# sourceMappingURL=a11y.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Namespace for apps\n *\n * @namespace OCA\n */\nexport default { }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl } from '@nextcloud/router'\nimport $ from 'jquery'\n\n/**\n * This plugin inserts the right avatar for the user, depending on, whether a\n * custom avatar is uploaded - which it uses then - or not, and display a\n * placeholder with the first letter of the users name instead.\n * For this it queries the core_avatar_get route, thus this plugin is fit very\n * tightly for owncloud, and it may not work anywhere else.\n *\n * You may use this on any
\n * Here I'm using
as an example.\n *\n * There are 5 ways to call this:\n *\n * 1. $('.avatardiv').avatar('jdoe', 128);\n * This will make the div to jdoe's fitting avatar, with a size of 128px.\n *\n * 2. $('.avatardiv').avatar('jdoe');\n * This will make the div to jdoe's fitting avatar. If the div already has a\n * height, it will be used for the avatars size. Otherwise this plugin will\n * search for 'size' DOM data, to use for avatar size. If neither are available\n * it will default to 64px.\n *\n * 3. $('.avatardiv').avatar();\n * This will search the DOM for 'user' data, to use as the username. If there\n * is no username available it will default to a placeholder with the value of\n * \"?\". The size will be determined the same way, as the second example.\n *\n * 4. $('.avatardiv').avatar('jdoe', 128, true);\n * This will behave like the first example, except it will also append random\n * hashes to the custom avatar images, to force image reloading in IE8.\n *\n * 5. $('.avatardiv').avatar('jdoe', 128, undefined, true);\n * This will behave like the first example, but it will hide the avatardiv, if\n * it will display the default placeholder. undefined is the ie8fix from\n * example 4 and can be either true, or false/undefined, to be ignored.\n *\n * 6. $('.avatardiv').avatar('jdoe', 128, undefined, true, callback);\n * This will behave like the above example, but it will call the function\n * defined in callback after the avatar is placed into the DOM.\n *\n */\n\n$.fn.avatar = function(user, size, ie8fix, hidedefault, callback, displayname) {\n\tconst setAvatarForUnknownUser = function(target) {\n\t\ttarget.imageplaceholder('?')\n\t\ttarget.css('background-color', '#b9b9b9')\n\t}\n\n\tif (typeof (user) !== 'undefined') {\n\t\tuser = String(user)\n\t}\n\tif (typeof (displayname) !== 'undefined') {\n\t\tdisplayname = String(displayname)\n\t}\n\n\tif (typeof (size) === 'undefined') {\n\t\tif (this.height() > 0) {\n\t\t\tsize = this.height()\n\t\t} else if (this.data('size') > 0) {\n\t\t\tsize = this.data('size')\n\t\t} else {\n\t\t\tsize = 64\n\t\t}\n\t}\n\n\tthis.height(size)\n\tthis.width(size)\n\n\tif (typeof (user) === 'undefined') {\n\t\tif (typeof (this.data('user')) !== 'undefined') {\n\t\t\tuser = this.data('user')\n\t\t} else {\n\t\t\tsetAvatarForUnknownUser(this)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// sanitize\n\tuser = String(user).replace(/\\//g, '')\n\n\tconst $div = this\n\tlet url\n\n\t// If this is our own avatar we have to use the version attribute\n\tif (user === getCurrentUser()?.uid) {\n\t\turl = generateUrl(\n\t\t\t'/avatar/{user}/{size}?v={version}',\n\t\t\t{\n\t\t\t\tuser,\n\t\t\t\tsize: Math.ceil(size * window.devicePixelRatio),\n\t\t\t\tversion: window.oc_userconfig.avatar.version,\n\t\t\t},\n\t\t)\n\t} else {\n\t\turl = generateUrl(\n\t\t\t'/avatar/{user}/{size}',\n\t\t\t{\n\t\t\t\tuser,\n\t\t\t\tsize: Math.ceil(size * window.devicePixelRatio),\n\t\t\t},\n\t\t)\n\t}\n\n\tconst img = new Image()\n\n\t// If the new image loads successfully set it.\n\timg.onload = function() {\n\t\t$div.clearimageplaceholder()\n\t\t$div.append(img)\n\n\t\tif (typeof callback === 'function') {\n\t\t\tcallback()\n\t\t}\n\t}\n\t// Fallback when avatar loading fails:\n\t// Use old placeholder when a displayname attribute is defined,\n\t// otherwise show the unknown user placeholder.\n\timg.onerror = function() {\n\t\t$div.clearimageplaceholder()\n\t\tif (typeof (displayname) !== 'undefined') {\n\t\t\t$div.imageplaceholder(user, displayname)\n\t\t} else {\n\t\t\tsetAvatarForUnknownUser($div)\n\t\t}\n\n\t\tif (typeof callback === 'function') {\n\t\t\tcallback()\n\t\t}\n\t}\n\n\tif (size < 32) {\n\t\t$div.addClass('icon-loading-small')\n\t} else {\n\t\t$div.addClass('icon-loading')\n\t}\n\timg.width = size\n\timg.height = size\n\timg.src = url\n\timg.alt = ''\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\n/**\n * check if an element exists.\n * allows you to write if ($('#myid').exists()) to increase readability\n *\n * @see {@link http://stackoverflow.com/questions/31044/is-there-an-exists-function-for-jquery}\n * @return {boolean}\n */\n$.fn.exists = function() {\n\treturn this.length > 0\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\n/**\n * Filter jQuery selector by attribute value\n *\n * @param {string} attrName attribute name\n * @param {string} attrValue attribute value\n * @return {void}\n */\n$.fn.filterAttr = function(attrName, attrValue) {\n\treturn this.filter(function() {\n\t\treturn $(this).attr(attrName) === attrValue\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { isA11yActivation } from '@nextcloud/vue/functions/a11y'\nimport { createFocusTrap } from 'focus-trap'\nimport $ from 'jquery'\n\n$.widget('oc.ocdialog', {\n\toptions: {\n\t\twidth: 'auto',\n\t\theight: 'auto',\n\t\tcloseButton: true,\n\t\tcloseOnEscape: true,\n\t\tcloseCallback: null,\n\t\tmodal: false,\n\t},\n\t_create() {\n\t\tconst self = this\n\n\t\tthis.originalCss = {\n\t\t\tdisplay: this.element[0].style.display,\n\t\t\twidth: this.element[0].style.width,\n\t\t\theight: this.element[0].style.height,\n\t\t}\n\n\t\tthis.originalTitle = this.element.attr('title')\n\t\tthis.options.title = this.options.title || this.originalTitle\n\n\t\tthis.$dialog = $('
')\n\t\t\t.attr({\n\t\t\t\t// Setting tabIndex makes the div focusable\n\t\t\t\ttabIndex: -1,\n\t\t\t\trole: 'dialog',\n\t\t\t\t'aria-modal': true,\n\t\t\t})\n\t\t\t.insertBefore(this.element)\n\t\tthis.$dialog.append(this.element.detach())\n\t\tthis.element.removeAttr('title').addClass('oc-dialog-content').appendTo(this.$dialog)\n\n\t\t// Activate the primary button on enter if there is a single input\n\t\tif (self.element.find('input').length === 1) {\n\t\t\tconst $input = self.element.find('input')\n\t\t\t$input.on('keydown', function(event) {\n\t\t\t\tif (isA11yActivation(event)) {\n\t\t\t\t\tif (self.$buttonrow) {\n\t\t\t\t\t\tconst $button = self.$buttonrow.find('button.primary')\n\t\t\t\t\t\tif ($button && !$button.prop('disabled')) {\n\t\t\t\t\t\t\t$button.click()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tthis.$dialog.css({\n\t\t\tdisplay: 'inline-block',\n\t\t\tposition: 'fixed',\n\t\t})\n\n\t\tthis.enterCallback = null\n\n\t\t$(document).on('keydown keyup', function(event) {\n\t\t\tif (\n\t\t\t\tevent.target !== self.$dialog.get(0)\n\t\t\t\t&& self.$dialog.find($(event.target)).length === 0\n\t\t\t) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Escape\n\t\t\tif (\n\t\t\t\tevent.keyCode === 27\n\t\t\t\t&& event.type === 'keydown'\n\t\t\t\t&& self.options.closeOnEscape\n\t\t\t) {\n\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\tself.close()\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t// Enter\n\t\t\tif (event.keyCode === 13) {\n\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\tif (self.enterCallback !== null) {\n\t\t\t\t\tself.enterCallback()\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif (event.type === 'keyup') {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t}\n\t\t})\n\n\t\tthis._setOptions(this.options)\n\t\tthis._createOverlay()\n\t\tthis._useFocusTrap()\n\t},\n\t_init() {\n\t\tthis._trigger('open')\n\t},\n\t_setOption(key, value) {\n\t\tconst self = this\n\t\tswitch (key) {\n\t\t\tcase 'title':\n\t\t\t\tif (this.$title) {\n\t\t\t\t\tthis.$title.text(value)\n\t\t\t\t} else {\n\t\t\t\t\tconst $title = $('

'\n\t\t\t\t\t\t+ value\n\t\t\t\t\t\t+ '

')\n\t\t\t\t\tthis.$title = $title.prependTo(this.$dialog)\n\t\t\t\t}\n\t\t\t\tthis._setSizes()\n\t\t\t\tbreak\n\t\t\tcase 'buttons':\n\t\t\t\tif (this.$buttonrow) {\n\t\t\t\t\tthis.$buttonrow.empty()\n\t\t\t\t} else {\n\t\t\t\t\tconst $buttonrow = $('
')\n\t\t\t\t\tthis.$buttonrow = $buttonrow.appendTo(this.$dialog)\n\t\t\t\t}\n\t\t\t\tif (value.length === 1) {\n\t\t\t\t\tthis.$buttonrow.addClass('onebutton')\n\t\t\t\t} else if (value.length === 2) {\n\t\t\t\t\tthis.$buttonrow.addClass('twobuttons')\n\t\t\t\t} else if (value.length === 3) {\n\t\t\t\t\tthis.$buttonrow.addClass('threebuttons')\n\t\t\t\t}\n\t\t\t\t$.each(value, function(idx, val) {\n\t\t\t\t\tconst $button = $('')\n\t\t\t\t\t$closeButton.attr('aria-label', t('core', 'Close \"{dialogTitle}\" dialog', { dialogTitle: this.$title || this.options.title }))\n\t\t\t\t\tthis.$dialog.prepend($closeButton)\n\t\t\t\t\t$closeButton.on('click keydown', function(event) {\n\t\t\t\t\t\tif (isA11yActivation(event)) {\n\t\t\t\t\t\t\tself.options.closeCallback && self.options.closeCallback()\n\t\t\t\t\t\t\tself.close()\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tthis.$dialog.find('.oc-dialog-close').remove()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'width':\n\t\t\t\tthis.$dialog.css('width', value)\n\t\t\t\tbreak\n\t\t\tcase 'height':\n\t\t\t\tthis.$dialog.css('height', value)\n\t\t\t\tbreak\n\t\t\tcase 'close':\n\t\t\t\tthis.closeCB = value\n\t\t\t\tbreak\n\t\t}\n\t\t// this._super(key, value);\n\t\t$.Widget.prototype._setOption.apply(this, arguments)\n\t},\n\t_setOptions() {\n\t\t// this._super(options);\n\t\t$.Widget.prototype._setOptions.apply(this, arguments)\n\t},\n\t_setSizes() {\n\t\tlet lessHeight = 0\n\t\tif (this.$title) {\n\t\t\tlessHeight += this.$title.outerHeight(true)\n\t\t}\n\t\tif (this.$buttonrow) {\n\t\t\tlessHeight += this.$buttonrow.outerHeight(true)\n\t\t}\n\t\tthis.element.css({\n\t\t\theight: 'calc(100% - ' + lessHeight + 'px)',\n\t\t})\n\t},\n\t_createOverlay() {\n\t\tif (!this.options.modal) {\n\t\t\treturn\n\t\t}\n\n\t\tconst self = this\n\t\tlet contentDiv = $('#content')\n\t\tif (contentDiv.length === 0) {\n\t\t\t// nextcloud-vue compatibility\n\t\t\tcontentDiv = $('.content')\n\t\t}\n\t\tthis.overlay = $('
')\n\t\t\t.addClass('oc-dialog-dim')\n\t\t\t.insertBefore(this.$dialog)\n\t\tthis.overlay.on('click keydown keyup', function(event) {\n\t\t\tif (event.target !== self.$dialog.get(0) && self.$dialog.find($(event.target)).length === 0) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t}\n\t\t})\n\t},\n\t_destroyOverlay() {\n\t\tif (!this.options.modal) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.overlay) {\n\t\t\tthis.overlay.off('click keydown keyup')\n\t\t\tthis.overlay.remove()\n\t\t\tthis.overlay = null\n\t\t}\n\t},\n\t_useFocusTrap() {\n\t\t// Create global stack if undefined\n\t\tObject.assign(window, { _nc_focus_trap: window._nc_focus_trap || [] })\n\n\t\tconst dialogElement = this.$dialog[0]\n\t\tthis.focusTrap = createFocusTrap(dialogElement, {\n\t\t\tallowOutsideClick: true,\n\t\t\ttrapStack: window._nc_focus_trap,\n\t\t\tfallbackFocus: dialogElement,\n\t\t})\n\n\t\tthis.focusTrap.activate()\n\t},\n\t_clearFocusTrap() {\n\t\tthis.focusTrap?.deactivate()\n\t\tthis.focusTrap = null\n\t},\n\twidget() {\n\t\treturn this.$dialog\n\t},\n\tsetEnterCallback(callback) {\n\t\tthis.enterCallback = callback\n\t},\n\tunsetEnterCallback() {\n\t\tthis.enterCallback = null\n\t},\n\tclose() {\n\t\tthis._clearFocusTrap()\n\t\tthis._destroyOverlay()\n\t\tconst self = this\n\t\t// Ugly hack to catch remaining keyup events.\n\t\tsetTimeout(function() {\n\t\t\tself._trigger('close', self)\n\t\t}, 200)\n\n\t\tself.$dialog.remove()\n\t\tthis.destroy()\n\t},\n\tdestroy() {\n\t\tif (this.$title) {\n\t\t\tthis.$title.remove()\n\t\t}\n\t\tif (this.$buttonrow) {\n\t\t\tthis.$buttonrow.remove()\n\t\t}\n\n\t\tif (this.originalTitle) {\n\t\t\tthis.element.attr('title', this.originalTitle)\n\t\t}\n\t\tthis.element.removeClass('oc-dialog-content')\n\t\t\t.css(this.originalCss).detach().insertBefore(this.$dialog)\n\t\tthis.$dialog.remove()\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport escapeHTML from 'escape-html'\nimport $ from 'jquery'\nimport logger from '../logger.js'\n\n/**\n * jQuery plugin for micro templates\n *\n * Strings are automatically escaped, but that can be disabled by setting\n * escapeFunction to null.\n *\n * Usage examples:\n *\n * var htmlStr = '

Bake, uncovered, until the {greasystuff} is melted and the {pasta} is heated through, about {min} minutes.

'\n * $(htmlStr).octemplate({greasystuff: 'cheese', pasta: 'macaroni', min: 10});\n *\n * var htmlStr = '

Welcome back {user}

';\n * $(htmlStr).octemplate({user: 'John Q. Public'}, {escapeFunction: null});\n *\n * Be aware that the target string must be wrapped in an HTML element for the\n * plugin to work. The following won't work:\n *\n * var textStr = 'Welcome back {user}';\n * $(textStr).octemplate({user: 'John Q. Public'});\n *\n * For anything larger than one-liners, you can use a simple $.get() ajax\n * request to get the template, or you can embed them it the page using the\n * text/template type:\n *\n * \n *\n * var $tmpl = $('#contactListItemTemplate');\n * var contacts = // fetched in some ajax call\n *\n * $.each(contacts, function(idx, contact) {\n * $contactList.append(\n * $tmpl.octemplate({\n * id: contact.getId(),\n * name: contact.getDisplayName(),\n * email: contact.getPreferredEmail(),\n * phone: contact.getPreferredPhone(),\n * });\n * );\n * });\n */\n/**\n * Object Template\n * Inspired by micro templating done by e.g. underscore.js\n */\nconst Template = {\n\tinit(vars, options, elem) {\n\t\t// Mix in the passed in options with the default options\n\t\tthis.vars = vars\n\t\tthis.options = $.extend({}, this.options, options)\n\n\t\tthis.elem = elem\n\t\tconst self = this\n\n\t\tif (typeof this.options.escapeFunction === 'function') {\n\t\t\tconst keys = Object.keys(this.vars)\n\t\t\tfor (let key = 0; key < keys.length; key++) {\n\t\t\t\tif (typeof this.vars[keys[key]] === 'string') {\n\t\t\t\t\tthis.vars[keys[key]] = self.options.escapeFunction(this.vars[keys[key]])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst _html = this._build(this.vars)\n\t\treturn $(_html)\n\t},\n\t// From stackoverflow.com/questions/1408289/best-way-to-do-variable-interpolation-in-javascript\n\t_build(o) {\n\t\tconst data = this.elem.attr('type') === 'text/template' ? this.elem.html() : this.elem.get(0).outerHTML\n\t\ttry {\n\t\t\treturn data.replace(\n\t\t\t\t/{([^{}]*)}/g,\n\t\t\t\tfunction(a, b) {\n\t\t\t\t\tconst r = o[b]\n\t\t\t\t\treturn typeof r === 'string' || typeof r === 'number' ? r : a\n\t\t\t\t},\n\t\t\t)\n\t\t} catch (error) {\n\t\t\tlogger.error('failed to build octemplate', { data, error })\n\t\t}\n\t},\n\toptions: {\n\t\tescapeFunction: escapeHTML,\n\t},\n}\n\n$.fn.octemplate = function(vars, options) {\n\tvars = vars || {}\n\tif (this.length) {\n\t\tconst _template = Object.create(Template)\n\t\treturn _template.init(vars, options, this)\n\t}\n}\n","/* eslint-disable jsdoc/require-jsdoc */\n\n/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2013-2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createHash } from 'crypto-browserify'\nimport $ from 'jquery'\nimport logger from '../logger.js'\n\n/*\n * Adds a background color to the element called on and adds the first character\n * of the passed in string. This string is also the seed for the generation of\n * the background color.\n *\n * You have following HTML:\n *\n *
\n *\n * And call this from Javascript:\n *\n * $('#albumart').imageplaceholder('The Album Title');\n *\n * Which will result in:\n *\n *
T
\n *\n * You may also call it like this, to have a different background, than the seed:\n *\n * $('#albumart').imageplaceholder('The Album Title', 'Album Title');\n *\n * Resulting in:\n *\n *
A
\n *\n */\n\n/*\n* Alternatively, you can use the prototype function to convert your string to rgb colors:\n*\n* \"a6741a86aded5611a8e46ce16f2ad646\".toRgb()\n*\n* Will return the rgb parameters within the following object:\n*\n* Color {r: 208, g: 158, b: 109}\n*\n*/\n\nfunction toRgb(s) {\n\t// Normalize hash\n\tlet hash = s.toLowerCase()\n\n\t// Already a md5 hash?\n\tif (hash.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n\t\tcreateHash('md5')\n\t\t\t.update(hash)\n\t\t\t.digest('hex')\n\t}\n\n\thash = hash.replace(/[^0-9a-f]/g, '')\n\n\tfunction Color(r, g, b) {\n\t\tthis.r = r\n\t\tthis.g = g\n\t\tthis.b = b\n\t}\n\n\tfunction stepCalc(steps, ends) {\n\t\tconst step = new Array(3)\n\t\tstep[0] = (ends[1].r - ends[0].r) / steps\n\t\tstep[1] = (ends[1].g - ends[0].g) / steps\n\t\tstep[2] = (ends[1].b - ends[0].b) / steps\n\t\treturn step\n\t}\n\n\tfunction mixPalette(steps, color1, color2) {\n\t\tconst palette = []\n\t\tpalette.push(color1)\n\t\tconst step = stepCalc(steps, [color1, color2])\n\t\tfor (let i = 1; i < steps; i++) {\n\t\t\tconst r = parseInt(color1.r + (step[0] * i))\n\t\t\tconst g = parseInt(color1.g + (step[1] * i))\n\t\t\tconst b = parseInt(color1.b + (step[2] * i))\n\t\t\tpalette.push(new Color(r, g, b))\n\t\t}\n\t\treturn palette\n\t}\n\n\tconst red = new Color(182, 70, 157)\n\tconst yellow = new Color(221, 203, 85)\n\tconst blue = new Color(0, 130, 201) // Nextcloud blue\n\t// Number of steps to go from a color to another\n\t// 3 colors * 6 will result in 18 generated colors\n\tconst steps = 6\n\n\tconst palette1 = mixPalette(steps, red, yellow)\n\tconst palette2 = mixPalette(steps, yellow, blue)\n\tconst palette3 = mixPalette(steps, blue, red)\n\n\tconst finalPalette = palette1.concat(palette2).concat(palette3)\n\n\t// Convert a string to an integer evenly\n\tfunction hashToInt(hash, maximum) {\n\t\tlet finalInt = 0\n\t\tconst result = []\n\n\t\t// Splitting evenly the string\n\t\tfor (let i = 0; i < hash.length; i++) {\n\t\t\t// chars in md5 goes up to f, hex:16\n\t\t\tresult.push(parseInt(hash.charAt(i), 16) % 16)\n\t\t}\n\t\t// Adds up all results\n\t\tfor (const j in result) {\n\t\t\tfinalInt += result[j]\n\t\t}\n\t\t// chars in md5 goes up to f, hex:16\n\t\t// make sure we're always using int in our operation\n\t\treturn parseInt(parseInt(finalInt) % maximum)\n\t}\n\n\treturn finalPalette[hashToInt(hash, steps * 3)]\n}\n\nString.prototype.toRgb = function() {\n\tlogger.warn('String.prototype.toRgb is deprecated! It will be removed in Nextcloud 22.')\n\n\treturn toRgb(this)\n}\n\n$.fn.imageplaceholder = function(seed, text, size) {\n\ttext = text || seed\n\n\t// Compute the hash\n\tconst rgb = toRgb(seed)\n\tthis.css('background-color', 'rgb(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ')')\n\n\t// Placeholders are square\n\tconst height = this.height() || size || 32\n\tthis.height(height)\n\tthis.width(height)\n\n\t// CSS rules\n\tthis.css('color', '#fff')\n\tthis.css('font-weight', 'normal')\n\tthis.css('text-align', 'center')\n\n\t// calculate the height\n\tthis.css('line-height', height + 'px')\n\tthis.css('font-size', (height * 0.55) + 'px')\n\n\tif (seed !== null && seed.length) {\n\t\tconst placeholderText = text.replace(/\\s+/g, ' ').trim().split(' ', 2).map((word) => word[0].toUpperCase()).join('')\n\t\tthis.html(placeholderText)\n\t}\n}\n\n$.fn.clearimageplaceholder = function() {\n\tthis.css('background-color', '')\n\tthis.css('color', '')\n\tthis.css('font-weight', '')\n\tthis.css('text-align', '')\n\tthis.css('line-height', '')\n\tthis.css('font-size', '')\n\tthis.html('')\n\tthis.removeClass('icon-loading')\n\tthis.removeClass('icon-loading-small')\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\nimport { getRequestToken } from '../OC/requesttoken.ts'\n\n$(document).on('ajaxSend', function(elm, xhr, settings) {\n\tif (settings.crossDomain === false) {\n\t\txhr.setRequestHeader('requesttoken', getRequestToken())\n\t\txhr.setRequestHeader('OCS-APIREQUEST', 'true')\n\t}\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\n/**\n * select a range in an input field\n *\n * @see {@link http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area}\n * @param {number} start start selection from\n * @param {number} end number of char from start\n * @return {void}\n */\n$.fn.selectRange = function(start, end) {\n\treturn this.each(function() {\n\t\tif (this.setSelectionRange) {\n\t\t\tthis.focus()\n\t\t\tthis.setSelectionRange(start, end)\n\t\t} else if (this.createTextRange) {\n\t\t\tconst range = this.createTextRange()\n\t\t\trange.collapse(true)\n\t\t\trange.moveEnd('character', end)\n\t\t\trange.moveStart('character', start)\n\t\t\trange.select()\n\t\t}\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/** @typedef {import('jquery')} jQuery */\nimport $ from 'jquery'\n\n/**\n * @name Show Password\n * @description\n * @version 1.3.0\n * @requires jQuery 1.5\n *\n * @author Jan Jarfalk \n * author-website http://www.unwrongest.com\n *\n * special-thanks Michel Gratton\n *\n * @license MIT\n */\n$.fn.extend({\n\tshowPassword(c) {\n\t\t// Setup callback object\n\t\tconst callback = { fn: null, args: {} }\n\t\tcallback.fn = c\n\n\t\t// Clones passwords and turn the clones into text inputs\n\t\tconst cloneElement = function(element) {\n\t\t\tconst $element = $(element)\n\n\t\t\tconst $clone = $('')\n\n\t\t\t// Name added for JQuery Validation compatibility\n\t\t\t// Element name is required to avoid script warning.\n\t\t\t$clone.attr({\n\t\t\t\ttype: 'text',\n\t\t\t\tclass: $element.attr('class'),\n\t\t\t\tstyle: $element.attr('style'),\n\t\t\t\tsize: $element.attr('size'),\n\t\t\t\tname: $element.attr('name') + '-clone',\n\t\t\t\ttabindex: $element.attr('tabindex'),\n\t\t\t\tautocomplete: 'off',\n\t\t\t})\n\n\t\t\tif ($element.attr('placeholder') !== undefined) {\n\t\t\t\t$clone.attr('placeholder', $element.attr('placeholder'))\n\t\t\t}\n\n\t\t\treturn $clone\n\t\t}\n\n\t\t// Transfers values between two elements\n\t\tconst update = function(a, b) {\n\t\t\tb.val(a.val())\n\t\t}\n\n\t\t// Shows a or b depending on checkbox\n\t\tconst setState = function(checkbox, a, b) {\n\t\t\tif (checkbox.is(':checked')) {\n\t\t\t\tupdate(a, b)\n\t\t\t\tb.show()\n\t\t\t\ta.hide()\n\t\t\t} else {\n\t\t\t\tupdate(b, a)\n\t\t\t\tb.hide()\n\t\t\t\ta.show()\n\t\t\t}\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tconst $input = $(this)\n\t\t\tconst $checkbox = $($input.data('typetoggle'))\n\n\t\t\t// Create clone\n\t\t\tconst $clone = cloneElement($input)\n\t\t\t$clone.insertAfter($input)\n\n\t\t\t// Set callback arguments\n\t\t\tif (callback.fn) {\n\t\t\t\tcallback.args.input = $input\n\t\t\t\tcallback.args.checkbox = $checkbox\n\t\t\t\tcallback.args.clone = $clone\n\t\t\t}\n\n\t\t\t$checkbox.bind('click', function() {\n\t\t\t\tsetState($checkbox, $input, $clone)\n\t\t\t})\n\n\t\t\t$input.bind('keyup', function() {\n\t\t\t\tupdate($input, $clone)\n\t\t\t})\n\n\t\t\t$clone.bind('keyup', function() {\n\t\t\t\tupdate($clone, $input)\n\n\t\t\t\t// Added for JQuery Validation compatibility\n\t\t\t\t// This will trigger validation if it's ON for keyup event\n\t\t\t\t$input.trigger('keyup')\n\t\t\t})\n\n\t\t\t// Added for JQuery Validation compatibility\n\t\t\t// This will trigger validation if it's ON for blur event\n\t\t\t$clone.bind('blur', function() {\n\t\t\t\t$input.trigger('focusout')\n\t\t\t})\n\n\t\t\tsetState($checkbox, $input, $clone)\n\n\t\t\t// set type of password field clone (type=text) to password right on submit\n\t\t\t// to prevent browser save the value of this field\n\t\t\t$clone.closest('form').submit(function() {\n\t\t\t\t// .prop has to be used, because .attr throws\n\t\t\t\t// an error while changing a type of an input\n\t\t\t\t// element\n\t\t\t\t$clone.prop('type', 'password')\n\t\t\t})\n\n\t\t\tif (callback.fn) {\n\t\t\t\tcallback.fn(callback.args)\n\t\t\t}\n\t\t})\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\n// Set autocomplete width the same as the related input\n// See http://stackoverflow.com/a/11845718\n$.ui.autocomplete.prototype._resizeMenu = function() {\n\tconst ul = this.menu.element\n\tul.outerWidth(this.element.outerWidth())\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./jquery-ui-fixes.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./jquery-ui-fixes.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./jquery.ocdialog.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./jquery.ocdialog.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport $ from 'jquery'\n\nimport './avatar.js'\nimport './exists.js'\nimport './filterattr.js'\nimport './ocdialog.js'\nimport './octemplate.js'\nimport './placeholder.js'\nimport './requesttoken.js'\nimport './selectrange.js'\nimport './showpassword.js'\nimport './ui-fixes.js'\nimport './css/jquery-ui-fixes.scss'\nimport './css/jquery.ocdialog.scss'\n\n/**\n * Disable automatic evaluation of responses for $.ajax() functions (and its\n * higher-level alternatives like $.get() and $.post()).\n *\n * If a response to a $.ajax() request returns a content type of \"application/javascript\"\n * JQuery would previously execute the response body. This is a pretty unexpected\n * behaviour and can result in a bypass of our Content-Security-Policy as well as\n * multiple unexpected XSS vectors.\n */\n$.ajaxSetup({\n\tcontents: {\n\t\tscript: false,\n\t},\n})\n\n/**\n * Disable execution of eval in jQuery. We do require an allowed eval CSP\n * configuration at the moment for handlebars et al. But for jQuery there is\n * not much of a reason to execute JavaScript directly via eval.\n *\n * This thus mitigates some unexpected XSS vectors.\n */\n$.globalEval = function() {\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport Axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport _ from 'underscore'\nimport { initCore } from './init.js'\nimport { registerAppsSlideToggle } from './OC/apps.js'\nimport OC from './OC/index.js'\n\nimport 'core-js/stable/index.js'\nimport 'regenerator-runtime/runtime.js'\nimport './globals.js'\nimport './jquery/index.js'\n\n__webpack_nonce__ = getCSPNonce()\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tinitCore()\n\tregisterAppsSlideToggle()\n\n\t// fallback to hashchange when no history support\n\tif (window.history.pushState) {\n\t\twindow.onpopstate = _.bind(OC.Util.History._onPopState, OC.Util.History)\n\t} else {\n\t\twindow.onhashchange = _.bind(OC.Util.History._onPopState, OC.Util.History)\n\t}\n})\n\n// Fix error \"CSRF check failed\"\ndocument.addEventListener('DOMContentLoaded', function() {\n\tconst form = document.getElementById('password-input-form')\n\tif (form) {\n\t\tform.addEventListener('submit', async function(event) {\n\t\t\tevent.preventDefault()\n\t\t\tconst requestToken = document.getElementById('requesttoken')\n\t\t\tif (requestToken) {\n\t\t\t\tconst url = generateUrl('/csrftoken')\n\t\t\t\tconst resp = await Axios.get(url)\n\t\t\t\trequestToken.value = resp.data.token\n\t\t\t}\n\t\t\tform.submit()\n\t\t})\n\t}\n})\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// https://github.com/nodejs/node/issues/47505\n// https://github.com/denoland/deno/issues/18893\nvar THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {\n URL.canParse();\n});\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9250\nvar WRONG_ARITY = fails(function () {\n return URL.canParse.length !== 1;\n});\n\n// `URL.canParse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, {\n canParse: function canParse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return !!new URL(urlString, base);\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\n\nvar defaultEncoding;\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n\tdefaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n\tvar pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n\n\tdefaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n\tdefaultEncoding = 'utf-8';\n}\nmodule.exports = defaultEncoding;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.oc-dialog{background:var(--color-main-background);border-radius:var(--border-radius-large);box-shadow:0 0 30px var(--color-box-shadow);color:var(--color-main-text);padding:24px;z-index:100001;font-size:100%;box-sizing:border-box;min-width:200px;top:50%;inset-inline-start:50%;transform:translate(-50%, -50%);max-height:calc(100% - 20px);max-width:calc(100% - 20px);overflow:auto}.oc-dialog-title{background:var(--color-main-background)}.oc-dialog-buttonrow{position:relative;display:flex;background:rgba(0,0,0,0);inset-inline-end:0;bottom:0;padding:0;padding-top:10px;box-sizing:border-box;width:100%;background-image:linear-gradient(rgba(255, 255, 255, 0), var(--color-main-background))}.oc-dialog-buttonrow.twobuttons{justify-content:space-between}.oc-dialog-buttonrow.onebutton,.oc-dialog-buttonrow.twobuttons.aside{justify-content:flex-end}.oc-dialog-buttonrow button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:44px;min-width:44px}.oc-dialog-close{position:absolute;width:44px !important;height:44px !important;top:4px;inset-inline-end:4px;padding:25px;background:var(--icon-close-dark) no-repeat center;opacity:.5;border-radius:var(--border-radius-pill)}.oc-dialog-close:hover,.oc-dialog-close:focus,.oc-dialog-close:active{opacity:1}.oc-dialog-dim{background-color:#000;opacity:.2;z-index:100001;position:fixed;top:0;inset-inline-start:0;width:100%;height:100%}body.theme--dark .oc-dialog-dim{opacity:.8}.oc-dialog-content{width:100%;max-width:550px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/jquery/css/jquery.ocdialog.scss\"],\"names\":[],\"mappings\":\"AAIA,WACC,uCAAA,CACA,wCAAA,CACA,2CAAA,CACA,4BAAA,CACA,YAAA,CACA,cAAA,CACA,cAAA,CACA,qBAAA,CACA,eAAA,CACA,OAAA,CACA,sBAAA,CACA,+BAAA,CACA,4BAAA,CACA,2BAAA,CACA,aAAA,CAGD,iBACC,uCAAA,CAGD,qBACC,iBAAA,CACA,YAAA,CACA,wBAAA,CACA,kBAAA,CACA,QAAA,CACA,SAAA,CACA,gBAAA,CACA,qBAAA,CACA,UAAA,CACA,sFAAA,CAEA,gCACO,6BAAA,CAGP,qEAEC,wBAAA,CAGD,4BACI,kBAAA,CACA,eAAA,CACH,sBAAA,CACA,WAAA,CACA,cAAA,CAIF,iBACC,iBAAA,CACA,qBAAA,CACA,sBAAA,CACA,OAAA,CACA,oBAAA,CACA,YAAA,CACA,kDAAA,CACA,UAAA,CACA,uCAAA,CAEA,sEAGC,SAAA,CAIF,eACC,qBAAA,CACA,UAAA,CACA,cAAA,CACA,cAAA,CACA,KAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CAGD,gCACC,UAAA,CAGD,mBACC,UAAA,CACA,eAAA\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n.oc-dialog {\\n\\tbackground: var(--color-main-background);\\n\\tborder-radius: var(--border-radius-large);\\n\\tbox-shadow: 0 0 30px var(--color-box-shadow);\\n\\tcolor: var(--color-main-text);\\n\\tpadding: 24px;\\n\\tz-index: 100001;\\n\\tfont-size: 100%;\\n\\tbox-sizing: border-box;\\n\\tmin-width: 200px;\\n\\ttop: 50%;\\n\\tinset-inline-start: 50%;\\n\\ttransform: translate(-50%, -50%);\\n\\tmax-height: calc(100% - 20px);\\n\\tmax-width: calc(100% - 20px);\\n\\toverflow: auto;\\n}\\n\\n.oc-dialog-title {\\n\\tbackground: var(--color-main-background);\\n}\\n\\n.oc-dialog-buttonrow {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tbackground: transparent;\\n\\tinset-inline-end: 0;\\n\\tbottom: 0;\\n\\tpadding: 0;\\n\\tpadding-top: 10px;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\tbackground-image: linear-gradient(rgba(255, 255, 255, 0.0), var(--color-main-background));\\n\\n\\t&.twobuttons {\\n justify-content: space-between;\\n }\\n\\n\\t&.onebutton,\\n\\t&.twobuttons.aside {\\n\\t\\tjustify-content: flex-end;\\n\\t}\\n\\n\\tbutton {\\n\\t white-space: nowrap;\\n\\t overflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\theight: 44px;\\n\\t\\tmin-width: 44px;\\n\\t}\\n}\\n\\n.oc-dialog-close {\\n\\tposition: absolute;\\n\\twidth: 44px !important;\\n\\theight: 44px !important;\\n\\ttop: 4px;\\n\\tinset-inline-end: 4px;\\n\\tpadding: 25px;\\n\\tbackground: var(--icon-close-dark) no-repeat center;\\n\\topacity: .5;\\n\\tborder-radius: var(--border-radius-pill);\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n.oc-dialog-dim {\\n\\tbackground-color: #000;\\n\\topacity: .2;\\n\\tz-index: 100001;\\n\\tposition: fixed;\\n\\ttop: 0;\\n\\tinset-inline-start: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\nbody.theme--dark .oc-dialog-dim {\\n\\topacity: .8;\\n}\\n\\n.oc-dialog-content {\\n\\twidth: 100%;\\n\\tmax-width: 550px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = globalThis[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = globalThis.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar c2i = require('../internals/base64-map').c2i;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]{1,2}$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar BASIC = !!$atob && !fails(function () {\n return $atob('aGk=') !== 'hi';\n});\n\nvar NO_SPACES_IGNORE = BASIC && fails(function () {\n return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = BASIC && !fails(function () {\n $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n $atob();\n});\n\nvar WRONG_ARITY = BASIC && $atob.length !== 1;\n\nvar FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, globalThis, data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var length, chr, bs;\n if (string.length % 4 === 0) {\n string = replace(string, finalEq, '');\n }\n length = string.length;\n if (length % 4 === 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (position < length) {\n chr = charAt(string, position++);\n bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n } return output;\n }\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"images/ui-icons_444444_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"images/ui-icons_555555_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"images/ui-icons_ffffff_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"images/ui-icons_777620_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"images/ui-icons_cc0000_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"images/ui-icons_777777_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*! jQuery UI - v1.13.3 - 2024-04-26\n* https://jqueryui.com\n* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css\n* To view and modify this theme, visit https://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=%22alpha(opacity%3D30)%22&opacityFilterOverlay=%22alpha(opacity%3D30)%22&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6\n* Copyright OpenJS Foundation and other contributors; Licensed MIT */\n\n/* Layout helpers\n----------------------------------*/\n.ui-helper-hidden {\n\tdisplay: none;\n}\n.ui-helper-hidden-accessible {\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n}\n.ui-helper-reset {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\toutline: 0;\n\tline-height: 1.3;\n\ttext-decoration: none;\n\tfont-size: 100%;\n\tlist-style: none;\n}\n.ui-helper-clearfix:before,\n.ui-helper-clearfix:after {\n\tcontent: \"\";\n\tdisplay: table;\n\tborder-collapse: collapse;\n}\n.ui-helper-clearfix:after {\n\tclear: both;\n}\n.ui-helper-zfix {\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tleft: 0;\n\tposition: absolute;\n\topacity: 0;\n\t-ms-filter: \"alpha(opacity=0)\"; /* support: IE8 */\n}\n\n.ui-front {\n\tz-index: 100;\n}\n\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-disabled {\n\tcursor: default !important;\n\tpointer-events: none;\n}\n\n\n/* Icons\n----------------------------------*/\n.ui-icon {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tmargin-top: -.25em;\n\tposition: relative;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n}\n\n.ui-widget-icon-block {\n\tleft: 50%;\n\tmargin-left: -8px;\n\tdisplay: block;\n}\n\n/* Misc visuals\n----------------------------------*/\n\n/* Overlays */\n.ui-widget-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n}\n.ui-accordion .ui-accordion-header {\n\tdisplay: block;\n\tcursor: pointer;\n\tposition: relative;\n\tmargin: 2px 0 0 0;\n\tpadding: .5em .5em .5em .7em;\n\tfont-size: 100%;\n}\n.ui-accordion .ui-accordion-content {\n\tpadding: 1em 2.2em;\n\tborder-top: 0;\n\toverflow: auto;\n}\n.ui-autocomplete {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tcursor: default;\n}\n.ui-menu {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: block;\n\toutline: 0;\n}\n.ui-menu .ui-menu {\n\tposition: absolute;\n}\n.ui-menu .ui-menu-item {\n\tmargin: 0;\n\tcursor: pointer;\n\t/* support: IE10, see #8844 */\n\tlist-style-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n}\n.ui-menu .ui-menu-item-wrapper {\n\tposition: relative;\n\tpadding: 3px 1em 3px .4em;\n}\n.ui-menu .ui-menu-divider {\n\tmargin: 5px 0;\n\theight: 0;\n\tfont-size: 0;\n\tline-height: 0;\n\tborder-width: 1px 0 0 0;\n}\n.ui-menu .ui-state-focus,\n.ui-menu .ui-state-active {\n\tmargin: -1px;\n}\n\n/* icon support */\n.ui-menu-icons {\n\tposition: relative;\n}\n.ui-menu-icons .ui-menu-item-wrapper {\n\tpadding-left: 2em;\n}\n\n/* left-aligned */\n.ui-menu .ui-icon {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: .2em;\n\tmargin: auto 0;\n}\n\n/* right-aligned */\n.ui-menu .ui-menu-icon {\n\tleft: auto;\n\tright: 0;\n}\n.ui-button {\n\tpadding: .4em 1em;\n\tdisplay: inline-block;\n\tposition: relative;\n\tline-height: normal;\n\tmargin-right: .1em;\n\tcursor: pointer;\n\tvertical-align: middle;\n\ttext-align: center;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n\t/* Support: IE <= 11 */\n\toverflow: visible;\n}\n\n.ui-button,\n.ui-button:link,\n.ui-button:visited,\n.ui-button:hover,\n.ui-button:active {\n\ttext-decoration: none;\n}\n\n/* to make room for the icon, a width needs to be set here */\n.ui-button-icon-only {\n\twidth: 2em;\n\tbox-sizing: border-box;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n}\n\n/* no icon support for input elements */\ninput.ui-button.ui-button-icon-only {\n\ttext-indent: 0;\n}\n\n/* button icon element(s) */\n.ui-button-icon-only .ui-icon {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -8px;\n\tmargin-left: -8px;\n}\n\n.ui-button.ui-icon-notext .ui-icon {\n\tpadding: 0;\n\twidth: 2.1em;\n\theight: 2.1em;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n\n}\n\ninput.ui-button.ui-icon-notext .ui-icon {\n\twidth: auto;\n\theight: auto;\n\ttext-indent: 0;\n\twhite-space: normal;\n\tpadding: .4em 1em;\n}\n\n/* workarounds */\n/* Support: Firefox 5 - 40 */\ninput.ui-button::-moz-focus-inner,\nbutton.ui-button::-moz-focus-inner {\n\tborder: 0;\n\tpadding: 0;\n}\n.ui-controlgroup {\n\tvertical-align: middle;\n\tdisplay: inline-block;\n}\n.ui-controlgroup > .ui-controlgroup-item {\n\tfloat: left;\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n.ui-controlgroup > .ui-controlgroup-item:focus,\n.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {\n\tz-index: 9999;\n}\n.ui-controlgroup-vertical > .ui-controlgroup-item {\n\tdisplay: block;\n\tfloat: none;\n\twidth: 100%;\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n\ttext-align: left;\n}\n.ui-controlgroup-vertical .ui-controlgroup-item {\n\tbox-sizing: border-box;\n}\n.ui-controlgroup .ui-controlgroup-label {\n\tpadding: .4em 1em;\n}\n.ui-controlgroup .ui-controlgroup-label span {\n\tfont-size: 80%;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-left: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-top: none;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {\n\tborder-right: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {\n\tborder-bottom: none;\n}\n\n/* Spinner specific style fixes */\n.ui-controlgroup-vertical .ui-spinner-input {\n\n\t/* Support: IE8 only, Android < 4.4 only */\n\twidth: 75%;\n\twidth: calc( 100% - 2.4em );\n}\n.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {\n\tborder-top-style: solid;\n}\n\n.ui-checkboxradio-label .ui-icon-background {\n\tbox-shadow: inset 1px 1px 1px #ccc;\n\tborder-radius: .12em;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label .ui-icon-background {\n\twidth: 16px;\n\theight: 16px;\n\tborder-radius: 1em;\n\toverflow: visible;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {\n\tbackground-image: none;\n\twidth: 8px;\n\theight: 8px;\n\tborder-width: 4px;\n\tborder-style: solid;\n}\n.ui-checkboxradio-disabled {\n\tpointer-events: none;\n}\n.ui-datepicker {\n\twidth: 17em;\n\tpadding: .2em .2em 0;\n\tdisplay: none;\n}\n.ui-datepicker .ui-datepicker-header {\n\tposition: relative;\n\tpadding: .2em 0;\n}\n.ui-datepicker .ui-datepicker-prev,\n.ui-datepicker .ui-datepicker-next {\n\tposition: absolute;\n\ttop: 2px;\n\twidth: 1.8em;\n\theight: 1.8em;\n}\n.ui-datepicker .ui-datepicker-prev-hover,\n.ui-datepicker .ui-datepicker-next-hover {\n\ttop: 1px;\n}\n.ui-datepicker .ui-datepicker-prev {\n\tleft: 2px;\n}\n.ui-datepicker .ui-datepicker-next {\n\tright: 2px;\n}\n.ui-datepicker .ui-datepicker-prev-hover {\n\tleft: 1px;\n}\n.ui-datepicker .ui-datepicker-next-hover {\n\tright: 1px;\n}\n.ui-datepicker .ui-datepicker-prev span,\n.ui-datepicker .ui-datepicker-next span {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -8px;\n\ttop: 50%;\n\tmargin-top: -8px;\n}\n.ui-datepicker .ui-datepicker-title {\n\tmargin: 0 2.3em;\n\tline-height: 1.8em;\n\ttext-align: center;\n}\n.ui-datepicker .ui-datepicker-title select {\n\tfont-size: 1em;\n\tmargin: 1px 0;\n}\n.ui-datepicker select.ui-datepicker-month,\n.ui-datepicker select.ui-datepicker-year {\n\twidth: 45%;\n}\n.ui-datepicker table {\n\twidth: 100%;\n\tfont-size: .9em;\n\tborder-collapse: collapse;\n\tmargin: 0 0 .4em;\n}\n.ui-datepicker th {\n\tpadding: .7em .3em;\n\ttext-align: center;\n\tfont-weight: bold;\n\tborder: 0;\n}\n.ui-datepicker td {\n\tborder: 0;\n\tpadding: 1px;\n}\n.ui-datepicker td span,\n.ui-datepicker td a {\n\tdisplay: block;\n\tpadding: .2em;\n\ttext-align: right;\n\ttext-decoration: none;\n}\n.ui-datepicker .ui-datepicker-buttonpane {\n\tbackground-image: none;\n\tmargin: .7em 0 0 0;\n\tpadding: 0 .2em;\n\tborder-left: 0;\n\tborder-right: 0;\n\tborder-bottom: 0;\n}\n.ui-datepicker .ui-datepicker-buttonpane button {\n\tfloat: right;\n\tmargin: .5em .2em .4em;\n\tcursor: pointer;\n\tpadding: .2em .6em .3em .6em;\n\twidth: auto;\n\toverflow: visible;\n}\n.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {\n\tfloat: left;\n}\n\n/* with multiple calendars */\n.ui-datepicker.ui-datepicker-multi {\n\twidth: auto;\n}\n.ui-datepicker-multi .ui-datepicker-group {\n\tfloat: left;\n}\n.ui-datepicker-multi .ui-datepicker-group table {\n\twidth: 95%;\n\tmargin: 0 auto .4em;\n}\n.ui-datepicker-multi-2 .ui-datepicker-group {\n\twidth: 50%;\n}\n.ui-datepicker-multi-3 .ui-datepicker-group {\n\twidth: 33.3%;\n}\n.ui-datepicker-multi-4 .ui-datepicker-group {\n\twidth: 25%;\n}\n.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-left-width: 0;\n}\n.ui-datepicker-multi .ui-datepicker-buttonpane {\n\tclear: left;\n}\n.ui-datepicker-row-break {\n\tclear: both;\n\twidth: 100%;\n\tfont-size: 0;\n}\n\n/* RTL support */\n.ui-datepicker-rtl {\n\tdirection: rtl;\n}\n.ui-datepicker-rtl .ui-datepicker-prev {\n\tright: 2px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next {\n\tleft: 2px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-prev:hover {\n\tright: 1px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next:hover {\n\tleft: 1px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane {\n\tclear: right;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button {\n\tfloat: left;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,\n.ui-datepicker-rtl .ui-datepicker-group {\n\tfloat: right;\n}\n.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-right-width: 0;\n\tborder-left-width: 1px;\n}\n\n/* Icons */\n.ui-datepicker .ui-icon {\n\tdisplay: block;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n\tleft: .5em;\n\ttop: .3em;\n}\n.ui-dialog {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding: .2em;\n\toutline: 0;\n}\n.ui-dialog .ui-dialog-titlebar {\n\tpadding: .4em 1em;\n\tposition: relative;\n}\n.ui-dialog .ui-dialog-title {\n\tfloat: left;\n\tmargin: .1em 0;\n\twhite-space: nowrap;\n\twidth: 90%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-dialog .ui-dialog-titlebar-close {\n\tposition: absolute;\n\tright: .3em;\n\ttop: 50%;\n\twidth: 20px;\n\tmargin: -10px 0 0 0;\n\tpadding: 1px;\n\theight: 20px;\n}\n.ui-dialog .ui-dialog-content {\n\tposition: relative;\n\tborder: 0;\n\tpadding: .5em 1em;\n\tbackground: none;\n\toverflow: auto;\n}\n.ui-dialog .ui-dialog-buttonpane {\n\ttext-align: left;\n\tborder-width: 1px 0 0 0;\n\tbackground-image: none;\n\tmargin-top: .5em;\n\tpadding: .3em 1em .5em .4em;\n}\n.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\n\tfloat: right;\n}\n.ui-dialog .ui-dialog-buttonpane button {\n\tmargin: .5em .4em .5em 0;\n\tcursor: pointer;\n}\n.ui-dialog .ui-resizable-n {\n\theight: 2px;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-e {\n\twidth: 2px;\n\tright: 0;\n}\n.ui-dialog .ui-resizable-s {\n\theight: 2px;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-w {\n\twidth: 2px;\n\tleft: 0;\n}\n.ui-dialog .ui-resizable-se,\n.ui-dialog .ui-resizable-sw,\n.ui-dialog .ui-resizable-ne,\n.ui-dialog .ui-resizable-nw {\n\twidth: 7px;\n\theight: 7px;\n}\n.ui-dialog .ui-resizable-se {\n\tright: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-sw {\n\tleft: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-ne {\n\tright: 0;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-nw {\n\tleft: 0;\n\ttop: 0;\n}\n.ui-draggable .ui-dialog-titlebar {\n\tcursor: move;\n}\n.ui-draggable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable {\n\tposition: relative;\n}\n.ui-resizable-handle {\n\tposition: absolute;\n\tfont-size: 0.1px;\n\tdisplay: block;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable-disabled .ui-resizable-handle,\n.ui-resizable-autohide .ui-resizable-handle {\n\tdisplay: none;\n}\n.ui-resizable-n {\n\tcursor: n-resize;\n\theight: 7px;\n\twidth: 100%;\n\ttop: -5px;\n\tleft: 0;\n}\n.ui-resizable-s {\n\tcursor: s-resize;\n\theight: 7px;\n\twidth: 100%;\n\tbottom: -5px;\n\tleft: 0;\n}\n.ui-resizable-e {\n\tcursor: e-resize;\n\twidth: 7px;\n\tright: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-w {\n\tcursor: w-resize;\n\twidth: 7px;\n\tleft: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-resizable-sw {\n\tcursor: sw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\tbottom: -5px;\n}\n.ui-resizable-nw {\n\tcursor: nw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\ttop: -5px;\n}\n.ui-resizable-ne {\n\tcursor: ne-resize;\n\twidth: 9px;\n\theight: 9px;\n\tright: -5px;\n\ttop: -5px;\n}\n.ui-progressbar {\n\theight: 2em;\n\ttext-align: left;\n\toverflow: hidden;\n}\n.ui-progressbar .ui-progressbar-value {\n\tmargin: -1px;\n\theight: 100%;\n}\n.ui-progressbar .ui-progressbar-overlay {\n\tbackground: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n\theight: 100%;\n\t-ms-filter: \"alpha(opacity=25)\"; /* support: IE8 */\n\topacity: 0.25;\n}\n.ui-progressbar-indeterminate .ui-progressbar-value {\n\tbackground-image: none;\n}\n.ui-selectable {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-selectable-helper {\n\tposition: absolute;\n\tz-index: 100;\n\tborder: 1px dotted black;\n}\n.ui-selectmenu-menu {\n\tpadding: 0;\n\tmargin: 0;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: none;\n}\n.ui-selectmenu-menu .ui-menu {\n\toverflow: auto;\n\toverflow-x: hidden;\n\tpadding-bottom: 1px;\n}\n.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {\n\tfont-size: 1em;\n\tfont-weight: bold;\n\tline-height: 1.5;\n\tpadding: 2px 0.4em;\n\tmargin: 0.5em 0 0 0;\n\theight: auto;\n\tborder: 0;\n}\n.ui-selectmenu-open {\n\tdisplay: block;\n}\n.ui-selectmenu-text {\n\tdisplay: block;\n\tmargin-right: 20px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-selectmenu-button.ui-button {\n\ttext-align: left;\n\twhite-space: nowrap;\n\twidth: 14em;\n}\n.ui-selectmenu-icon.ui-icon {\n\tfloat: right;\n\tmargin-top: 0;\n}\n.ui-slider {\n\tposition: relative;\n\ttext-align: left;\n}\n.ui-slider .ui-slider-handle {\n\tposition: absolute;\n\tz-index: 2;\n\twidth: 1.2em;\n\theight: 1.2em;\n\tcursor: pointer;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-slider .ui-slider-range {\n\tposition: absolute;\n\tz-index: 1;\n\tfont-size: .7em;\n\tdisplay: block;\n\tborder: 0;\n\tbackground-position: 0 0;\n}\n\n/* support: IE8 - See #6727 */\n.ui-slider.ui-state-disabled .ui-slider-handle,\n.ui-slider.ui-state-disabled .ui-slider-range {\n\tfilter: inherit;\n}\n\n.ui-slider-horizontal {\n\theight: .8em;\n}\n.ui-slider-horizontal .ui-slider-handle {\n\ttop: -.3em;\n\tmargin-left: -.6em;\n}\n.ui-slider-horizontal .ui-slider-range {\n\ttop: 0;\n\theight: 100%;\n}\n.ui-slider-horizontal .ui-slider-range-min {\n\tleft: 0;\n}\n.ui-slider-horizontal .ui-slider-range-max {\n\tright: 0;\n}\n\n.ui-slider-vertical {\n\twidth: .8em;\n\theight: 100px;\n}\n.ui-slider-vertical .ui-slider-handle {\n\tleft: -.3em;\n\tmargin-left: 0;\n\tmargin-bottom: -.6em;\n}\n.ui-slider-vertical .ui-slider-range {\n\tleft: 0;\n\twidth: 100%;\n}\n.ui-slider-vertical .ui-slider-range-min {\n\tbottom: 0;\n}\n.ui-slider-vertical .ui-slider-range-max {\n\ttop: 0;\n}\n.ui-sortable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-spinner {\n\tposition: relative;\n\tdisplay: inline-block;\n\toverflow: hidden;\n\tpadding: 0;\n\tvertical-align: middle;\n}\n.ui-spinner-input {\n\tborder: none;\n\tbackground: none;\n\tcolor: inherit;\n\tpadding: .222em 0;\n\tmargin: .2em 0;\n\tvertical-align: middle;\n\tmargin-left: .4em;\n\tmargin-right: 2em;\n}\n.ui-spinner-button {\n\twidth: 1.6em;\n\theight: 50%;\n\tfont-size: .5em;\n\tpadding: 0;\n\tmargin: 0;\n\ttext-align: center;\n\tposition: absolute;\n\tcursor: default;\n\tdisplay: block;\n\toverflow: hidden;\n\tright: 0;\n}\n/* more specificity required here to override default borders */\n.ui-spinner a.ui-spinner-button {\n\tborder-top-style: none;\n\tborder-bottom-style: none;\n\tborder-right-style: none;\n}\n.ui-spinner-up {\n\ttop: 0;\n}\n.ui-spinner-down {\n\tbottom: 0;\n}\n.ui-tabs {\n\tposition: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as \"fixed\") */\n\tpadding: .2em;\n}\n.ui-tabs .ui-tabs-nav {\n\tmargin: 0;\n\tpadding: .2em .2em 0;\n}\n.ui-tabs .ui-tabs-nav li {\n\tlist-style: none;\n\tfloat: left;\n\tposition: relative;\n\ttop: 0;\n\tmargin: 1px .2em 0 0;\n\tborder-bottom-width: 0;\n\tpadding: 0;\n\twhite-space: nowrap;\n}\n.ui-tabs .ui-tabs-nav .ui-tabs-anchor {\n\tfloat: left;\n\tpadding: .5em 1em;\n\ttext-decoration: none;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active {\n\tmargin-bottom: -1px;\n\tpadding-bottom: 1px;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {\n\tcursor: text;\n}\n.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {\n\tcursor: pointer;\n}\n.ui-tabs .ui-tabs-panel {\n\tdisplay: block;\n\tborder-width: 0;\n\tpadding: 1em 1.4em;\n\tbackground: none;\n}\n.ui-tooltip {\n\tpadding: 8px;\n\tposition: absolute;\n\tz-index: 9999;\n\tmax-width: 300px;\n}\nbody .ui-tooltip {\n\tborder-width: 2px;\n}\n\n/* Component containers\n----------------------------------*/\n.ui-widget {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget .ui-widget {\n\tfont-size: 1em;\n}\n.ui-widget input,\n.ui-widget select,\n.ui-widget textarea,\n.ui-widget button {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget.ui-widget-content {\n\tborder: 1px solid #c5c5c5;\n}\n.ui-widget-content {\n\tborder: 1px solid #dddddd;\n\tbackground: #ffffff;\n\tcolor: #333333;\n}\n.ui-widget-content a {\n\tcolor: #333333;\n}\n.ui-widget-header {\n\tborder: 1px solid #dddddd;\n\tbackground: #e9e9e9;\n\tcolor: #333333;\n\tfont-weight: bold;\n}\n.ui-widget-header a {\n\tcolor: #333333;\n}\n\n/* Interaction states\n----------------------------------*/\n.ui-state-default,\n.ui-widget-content .ui-state-default,\n.ui-widget-header .ui-state-default,\n.ui-button,\n\n/* We use html here because we need a greater specificity to make sure disabled\nworks properly when clicked or hovered */\nhtml .ui-button.ui-state-disabled:hover,\nhtml .ui-button.ui-state-disabled:active {\n\tborder: 1px solid #c5c5c5;\n\tbackground: #f6f6f6;\n\tfont-weight: normal;\n\tcolor: #454545;\n}\n.ui-state-default a,\n.ui-state-default a:link,\n.ui-state-default a:visited,\na.ui-button,\na:link.ui-button,\na:visited.ui-button,\n.ui-button {\n\tcolor: #454545;\n\ttext-decoration: none;\n}\n.ui-state-hover,\n.ui-widget-content .ui-state-hover,\n.ui-widget-header .ui-state-hover,\n.ui-state-focus,\n.ui-widget-content .ui-state-focus,\n.ui-widget-header .ui-state-focus,\n.ui-button:hover,\n.ui-button:focus {\n\tborder: 1px solid #cccccc;\n\tbackground: #ededed;\n\tfont-weight: normal;\n\tcolor: #2b2b2b;\n}\n.ui-state-hover a,\n.ui-state-hover a:hover,\n.ui-state-hover a:link,\n.ui-state-hover a:visited,\n.ui-state-focus a,\n.ui-state-focus a:hover,\n.ui-state-focus a:link,\n.ui-state-focus a:visited,\na.ui-button:hover,\na.ui-button:focus {\n\tcolor: #2b2b2b;\n\ttext-decoration: none;\n}\n\n.ui-visual-focus {\n\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\n}\n.ui-state-active,\n.ui-widget-content .ui-state-active,\n.ui-widget-header .ui-state-active,\na.ui-button:active,\n.ui-button:active,\n.ui-button.ui-state-active:hover {\n\tborder: 1px solid #003eff;\n\tbackground: #007fff;\n\tfont-weight: normal;\n\tcolor: #ffffff;\n}\n.ui-icon-background,\n.ui-state-active .ui-icon-background {\n\tborder: #003eff;\n\tbackground-color: #ffffff;\n}\n.ui-state-active a,\n.ui-state-active a:link,\n.ui-state-active a:visited {\n\tcolor: #ffffff;\n\ttext-decoration: none;\n}\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-highlight,\n.ui-widget-content .ui-state-highlight,\n.ui-widget-header .ui-state-highlight {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n\tcolor: #777620;\n}\n.ui-state-checked {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n}\n.ui-state-highlight a,\n.ui-widget-content .ui-state-highlight a,\n.ui-widget-header .ui-state-highlight a {\n\tcolor: #777620;\n}\n.ui-state-error,\n.ui-widget-content .ui-state-error,\n.ui-widget-header .ui-state-error {\n\tborder: 1px solid #f1a899;\n\tbackground: #fddfdf;\n\tcolor: #5f3f3f;\n}\n.ui-state-error a,\n.ui-widget-content .ui-state-error a,\n.ui-widget-header .ui-state-error a {\n\tcolor: #5f3f3f;\n}\n.ui-state-error-text,\n.ui-widget-content .ui-state-error-text,\n.ui-widget-header .ui-state-error-text {\n\tcolor: #5f3f3f;\n}\n.ui-priority-primary,\n.ui-widget-content .ui-priority-primary,\n.ui-widget-header .ui-priority-primary {\n\tfont-weight: bold;\n}\n.ui-priority-secondary,\n.ui-widget-content .ui-priority-secondary,\n.ui-widget-header .ui-priority-secondary {\n\topacity: .7;\n\t-ms-filter: \"alpha(opacity=70)\"; /* support: IE8 */\n\tfont-weight: normal;\n}\n.ui-state-disabled,\n.ui-widget-content .ui-state-disabled,\n.ui-widget-header .ui-state-disabled {\n\topacity: .35;\n\t-ms-filter: \"alpha(opacity=35)\"; /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-state-disabled .ui-icon {\n\t-ms-filter: \"alpha(opacity=35)\"; /* support: IE8 - See #6059 */\n}\n\n/* Icons\n----------------------------------*/\n\n/* states and images */\n.ui-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n.ui-icon,\n.ui-widget-content .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\n}\n.ui-widget-header .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\n}\n.ui-state-hover .ui-icon,\n.ui-state-focus .ui-icon,\n.ui-button:hover .ui-icon,\n.ui-button:focus .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___});\n}\n.ui-state-active .ui-icon,\n.ui-button:active .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_4___});\n}\n.ui-state-highlight .ui-icon,\n.ui-button .ui-state-highlight.ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_5___});\n}\n.ui-state-error .ui-icon,\n.ui-state-error-text .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_6___});\n}\n.ui-button .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_7___});\n}\n\n/* positioning */\n/* Three classes needed to override \\`.ui-button:hover .ui-icon\\` */\n.ui-icon-blank.ui-icon-blank.ui-icon-blank {\n\tbackground-image: none;\n}\n.ui-icon-caret-1-n { background-position: 0 0; }\n.ui-icon-caret-1-ne { background-position: -16px 0; }\n.ui-icon-caret-1-e { background-position: -32px 0; }\n.ui-icon-caret-1-se { background-position: -48px 0; }\n.ui-icon-caret-1-s { background-position: -65px 0; }\n.ui-icon-caret-1-sw { background-position: -80px 0; }\n.ui-icon-caret-1-w { background-position: -96px 0; }\n.ui-icon-caret-1-nw { background-position: -112px 0; }\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\n.ui-icon-arrow-4 { background-position: 0 -80px; }\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\n.ui-icon-extlink { background-position: -32px -80px; }\n.ui-icon-newwin { background-position: -48px -80px; }\n.ui-icon-refresh { background-position: -64px -80px; }\n.ui-icon-shuffle { background-position: -80px -80px; }\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\n.ui-icon-folder-open { background-position: -16px -96px; }\n.ui-icon-document { background-position: -32px -96px; }\n.ui-icon-document-b { background-position: -48px -96px; }\n.ui-icon-note { background-position: -64px -96px; }\n.ui-icon-mail-closed { background-position: -80px -96px; }\n.ui-icon-mail-open { background-position: -96px -96px; }\n.ui-icon-suitcase { background-position: -112px -96px; }\n.ui-icon-comment { background-position: -128px -96px; }\n.ui-icon-person { background-position: -144px -96px; }\n.ui-icon-print { background-position: -160px -96px; }\n.ui-icon-trash { background-position: -176px -96px; }\n.ui-icon-locked { background-position: -192px -96px; }\n.ui-icon-unlocked { background-position: -208px -96px; }\n.ui-icon-bookmark { background-position: -224px -96px; }\n.ui-icon-tag { background-position: -240px -96px; }\n.ui-icon-home { background-position: 0 -112px; }\n.ui-icon-flag { background-position: -16px -112px; }\n.ui-icon-calendar { background-position: -32px -112px; }\n.ui-icon-cart { background-position: -48px -112px; }\n.ui-icon-pencil { background-position: -64px -112px; }\n.ui-icon-clock { background-position: -80px -112px; }\n.ui-icon-disk { background-position: -96px -112px; }\n.ui-icon-calculator { background-position: -112px -112px; }\n.ui-icon-zoomin { background-position: -128px -112px; }\n.ui-icon-zoomout { background-position: -144px -112px; }\n.ui-icon-search { background-position: -160px -112px; }\n.ui-icon-wrench { background-position: -176px -112px; }\n.ui-icon-gear { background-position: -192px -112px; }\n.ui-icon-heart { background-position: -208px -112px; }\n.ui-icon-star { background-position: -224px -112px; }\n.ui-icon-link { background-position: -240px -112px; }\n.ui-icon-cancel { background-position: 0 -128px; }\n.ui-icon-plus { background-position: -16px -128px; }\n.ui-icon-plusthick { background-position: -32px -128px; }\n.ui-icon-minus { background-position: -48px -128px; }\n.ui-icon-minusthick { background-position: -64px -128px; }\n.ui-icon-close { background-position: -80px -128px; }\n.ui-icon-closethick { background-position: -96px -128px; }\n.ui-icon-key { background-position: -112px -128px; }\n.ui-icon-lightbulb { background-position: -128px -128px; }\n.ui-icon-scissors { background-position: -144px -128px; }\n.ui-icon-clipboard { background-position: -160px -128px; }\n.ui-icon-copy { background-position: -176px -128px; }\n.ui-icon-contact { background-position: -192px -128px; }\n.ui-icon-image { background-position: -208px -128px; }\n.ui-icon-video { background-position: -224px -128px; }\n.ui-icon-script { background-position: -240px -128px; }\n.ui-icon-alert { background-position: 0 -144px; }\n.ui-icon-info { background-position: -16px -144px; }\n.ui-icon-notice { background-position: -32px -144px; }\n.ui-icon-help { background-position: -48px -144px; }\n.ui-icon-check { background-position: -64px -144px; }\n.ui-icon-bullet { background-position: -80px -144px; }\n.ui-icon-radio-on { background-position: -96px -144px; }\n.ui-icon-radio-off { background-position: -112px -144px; }\n.ui-icon-pin-w { background-position: -128px -144px; }\n.ui-icon-pin-s { background-position: -144px -144px; }\n.ui-icon-play { background-position: 0 -160px; }\n.ui-icon-pause { background-position: -16px -160px; }\n.ui-icon-seek-next { background-position: -32px -160px; }\n.ui-icon-seek-prev { background-position: -48px -160px; }\n.ui-icon-seek-end { background-position: -64px -160px; }\n.ui-icon-seek-start { background-position: -80px -160px; }\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\n.ui-icon-seek-first { background-position: -80px -160px; }\n.ui-icon-stop { background-position: -96px -160px; }\n.ui-icon-eject { background-position: -112px -160px; }\n.ui-icon-volume-off { background-position: -128px -160px; }\n.ui-icon-volume-on { background-position: -144px -160px; }\n.ui-icon-power { background-position: 0 -176px; }\n.ui-icon-signal-diag { background-position: -16px -176px; }\n.ui-icon-signal { background-position: -32px -176px; }\n.ui-icon-battery-0 { background-position: -48px -176px; }\n.ui-icon-battery-1 { background-position: -64px -176px; }\n.ui-icon-battery-2 { background-position: -80px -176px; }\n.ui-icon-battery-3 { background-position: -96px -176px; }\n.ui-icon-circle-plus { background-position: 0 -192px; }\n.ui-icon-circle-minus { background-position: -16px -192px; }\n.ui-icon-circle-close { background-position: -32px -192px; }\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\n.ui-icon-circle-check { background-position: -208px -192px; }\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\n\n\n/* Misc visuals\n----------------------------------*/\n\n/* Corner radius */\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-left,\n.ui-corner-tl {\n\tborder-top-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-right,\n.ui-corner-tr {\n\tborder-top-right-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-left,\n.ui-corner-bl {\n\tborder-bottom-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-right,\n.ui-corner-br {\n\tborder-bottom-right-radius: 3px;\n}\n\n/* Overlays */\n.ui-widget-overlay {\n\tbackground: #aaaaaa;\n\topacity: .003;\n\t-ms-filter: \"alpha(opacity=.3)\"; /* support: IE8 */\n}\n.ui-widget-shadow {\n\t-webkit-box-shadow: 0px 0px 5px #666666;\n\tbox-shadow: 0px 0px 5px #666666;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/jquery-ui-dist/jquery-ui.css\"],\"names\":[],\"mappings\":\"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,YAAY;AACb;AACA;CACC,WAAW;CACX,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;AACb;AACA;;CAEC,sBAAsB;CACtB,UAAU;CACV,WAAW;CACX,iBAAiB;CACjB,mBAAmB;AACpB;AACA;CACC,oBAAoB;AACrB;AACA;CACC,WAAW;CACX,oBAAoB;CACpB,aAAa;AACd;AACA;CACC,kBAAkB;CAClB,eAAe;AAChB;AACA;;CAEC,kBAAkB;CAClB,QAAQ;CACR,YAAY;CACZ,aAAa;AACd;AACA;;CAEC,QAAQ;AACT;AACA;CACC,SAAS;AACV;AACA;CACC,UAAU;AACX;AACA;CACC,SAAS;AACV;AACA;CACC,UAAU;AACX;AACA;;CAEC,cAAc;CACd,kBAAkB;CAClB,SAAS;CACT,iBAAiB;CACjB,QAAQ;CACR,gBAAgB;AACjB;AACA;CACC,eAAe;CACf,kBAAkB;CAClB,kBAAkB;AACnB;AACA;CACC,cAAc;CACd,aAAa;AACd;AACA;;CAEC,UAAU;AACX;AACA;CACC,WAAW;CACX,eAAe;CACf,yBAAyB;CACzB,gBAAgB;AACjB;AACA;CACC,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,SAAS;AACV;AACA;CACC,SAAS;CACT,YAAY;AACb;AACA;;CAEC,cAAc;CACd,aAAa;CACb,iBAAiB;CACjB,qBAAqB;AACtB;AACA;CACC,sBAAsB;CACtB,kBAAkB;CAClB,eAAe;CACf,cAAc;CACd,eAAe;CACf,gBAAgB;AACjB;AACA;CACC,YAAY;CACZ,sBAAsB;CACtB,eAAe;CACf,4BAA4B;CAC5B,WAAW;CACX,iBAAiB;AAClB;AACA;CACC,WAAW;AACZ;;AAEA,4BAA4B;AAC5B;CACC,WAAW;AACZ;AACA;CACC,WAAW;AACZ;AACA;CACC,UAAU;CACV,mBAAmB;AACpB;AACA;CACC,UAAU;AACX;AACA;CACC,YAAY;AACb;AACA;CACC,UAAU;AACX;AACA;;CAEC,oBAAoB;AACrB;AACA;CACC,WAAW;AACZ;AACA;CACC,WAAW;CACX,WAAW;CACX,YAAY;AACb;;AAEA,gBAAgB;AAChB;CACC,cAAc;AACf;AACA;CACC,UAAU;CACV,UAAU;AACX;AACA;CACC,SAAS;CACT,WAAW;AACZ;AACA;CACC,UAAU;CACV,UAAU;AACX;AACA;CACC,SAAS;CACT,WAAW;AACZ;AACA;CACC,YAAY;AACb;AACA;CACC,WAAW;AACZ;AACA;;CAEC,YAAY;AACb;AACA;;CAEC,qBAAqB;CACrB,sBAAsB;AACvB;;AAEA,UAAU;AACV;CACC,cAAc;CACd,qBAAqB;CACrB,gBAAgB;CAChB,4BAA4B;CAC5B,UAAU;CACV,SAAS;AACV;AACA;CACC,kBAAkB;CAClB,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;AACX;AACA;CACC,iBAAiB;CACjB,kBAAkB;AACnB;AACA;CACC,WAAW;CACX,cAAc;CACd,mBAAmB;CACnB,UAAU;CACV,gBAAgB;CAChB,uBAAuB;AACxB;AACA;CACC,kBAAkB;CAClB,WAAW;CACX,QAAQ;CACR,WAAW;CACX,mBAAmB;CACnB,YAAY;CACZ,YAAY;AACb;AACA;CACC,kBAAkB;CAClB,SAAS;CACT,iBAAiB;CACjB,gBAAgB;CAChB,cAAc;AACf;AACA;CACC,gBAAgB;CAChB,uBAAuB;CACvB,sBAAsB;CACtB,gBAAgB;CAChB,2BAA2B;AAC5B;AACA;CACC,YAAY;AACb;AACA;CACC,wBAAwB;CACxB,eAAe;AAChB;AACA;CACC,WAAW;CACX,MAAM;AACP;AACA;CACC,UAAU;CACV,QAAQ;AACT;AACA;CACC,WAAW;CACX,SAAS;AACV;AACA;CACC,UAAU;CACV,OAAO;AACR;AACA;;;;CAIC,UAAU;CACV,WAAW;AACZ;AACA;CACC,QAAQ;CACR,SAAS;AACV;AACA;CACC,OAAO;CACP,SAAS;AACV;AACA;CACC,QAAQ;CACR,MAAM;AACP;AACA;CACC,OAAO;CACP,MAAM;AACP;AACA;CACC,YAAY;AACb;AACA;CACC,sBAAsB;CACtB,kBAAkB;AACnB;AACA;CACC,kBAAkB;AACnB;AACA;CACC,kBAAkB;CAClB,gBAAgB;CAChB,cAAc;CACd,sBAAsB;CACtB,kBAAkB;AACnB;AACA;;CAEC,aAAa;AACd;AACA;CACC,gBAAgB;CAChB,WAAW;CACX,WAAW;CACX,SAAS;CACT,OAAO;AACR;AACA;CACC,gBAAgB;CAChB,WAAW;CACX,WAAW;CACX,YAAY;CACZ,OAAO;AACR;AACA;CACC,gBAAgB;CAChB,UAAU;CACV,WAAW;CACX,MAAM;CACN,YAAY;AACb;AACA;CACC,gBAAgB;CAChB,UAAU;CACV,UAAU;CACV,MAAM;CACN,YAAY;AACb;AACA;CACC,iBAAiB;CACjB,WAAW;CACX,YAAY;CACZ,UAAU;CACV,WAAW;AACZ;AACA;CACC,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,UAAU;CACV,YAAY;AACb;AACA;CACC,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,UAAU;CACV,SAAS;AACV;AACA;CACC,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,WAAW;CACX,SAAS;AACV;AACA;CACC,WAAW;CACX,gBAAgB;CAChB,gBAAgB;AACjB;AACA;CACC,YAAY;CACZ,YAAY;AACb;AACA;CACC,mDAAyzE;CACzzE,YAAY;CACZ,+BAA+B,EAAE,iBAAiB;CAClD,aAAa;AACd;AACA;CACC,sBAAsB;AACvB;AACA;CACC,sBAAsB;CACtB,kBAAkB;AACnB;AACA;CACC,kBAAkB;CAClB,YAAY;CACZ,wBAAwB;AACzB;AACA;CACC,UAAU;CACV,SAAS;CACT,kBAAkB;CAClB,MAAM;CACN,OAAO;CACP,aAAa;AACd;AACA;CACC,cAAc;CACd,kBAAkB;CAClB,mBAAmB;AACpB;AACA;CACC,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,mBAAmB;CACnB,YAAY;CACZ,SAAS;AACV;AACA;CACC,cAAc;AACf;AACA;CACC,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,uBAAuB;AACxB;AACA;CACC,gBAAgB;CAChB,mBAAmB;CACnB,WAAW;AACZ;AACA;CACC,YAAY;CACZ,aAAa;AACd;AACA;CACC,kBAAkB;CAClB,gBAAgB;AACjB;AACA;CACC,kBAAkB;CAClB,UAAU;CACV,YAAY;CACZ,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,kBAAkB;AACnB;AACA;CACC,kBAAkB;CAClB,UAAU;CACV,eAAe;CACf,cAAc;CACd,SAAS;CACT,wBAAwB;AACzB;;AAEA,6BAA6B;AAC7B;;CAEC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;AACA;CACC,UAAU;CACV,kBAAkB;AACnB;AACA;CACC,MAAM;CACN,YAAY;AACb;AACA;CACC,OAAO;AACR;AACA;CACC,QAAQ;AACT;;AAEA;CACC,WAAW;CACX,aAAa;AACd;AACA;CACC,WAAW;CACX,cAAc;CACd,oBAAoB;AACrB;AACA;CACC,OAAO;CACP,WAAW;AACZ;AACA;CACC,SAAS;AACV;AACA;CACC,MAAM;AACP;AACA;CACC,sBAAsB;CACtB,kBAAkB;AACnB;AACA;CACC,kBAAkB;CAClB,qBAAqB;CACrB,gBAAgB;CAChB,UAAU;CACV,sBAAsB;AACvB;AACA;CACC,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,sBAAsB;CACtB,iBAAiB;CACjB,iBAAiB;AAClB;AACA;CACC,YAAY;CACZ,WAAW;CACX,eAAe;CACf,UAAU;CACV,SAAS;CACT,kBAAkB;CAClB,kBAAkB;CAClB,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,QAAQ;AACT;AACA,+DAA+D;AAC/D;CACC,sBAAsB;CACtB,yBAAyB;CACzB,wBAAwB;AACzB;AACA;CACC,MAAM;AACP;AACA;CACC,SAAS;AACV;AACA;CACC,kBAAkB,CAAC,uIAAuI;CAC1J,aAAa;AACd;AACA;CACC,SAAS;CACT,oBAAoB;AACrB;AACA;CACC,gBAAgB;CAChB,WAAW;CACX,kBAAkB;CAClB,MAAM;CACN,oBAAoB;CACpB,sBAAsB;CACtB,UAAU;CACV,mBAAmB;AACpB;AACA;CACC,WAAW;CACX,iBAAiB;CACjB,qBAAqB;AACtB;AACA;CACC,mBAAmB;CACnB,mBAAmB;AACpB;AACA;;;CAGC,YAAY;AACb;AACA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\",\"sourcesContent\":[\"/*! jQuery UI - v1.13.3 - 2024-04-26\\n* https://jqueryui.com\\n* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css\\n* To view and modify this theme, visit https://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=%22alpha(opacity%3D30)%22&opacityFilterOverlay=%22alpha(opacity%3D30)%22&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6\\n* Copyright OpenJS Foundation and other contributors; Licensed MIT */\\n\\n/* Layout helpers\\n----------------------------------*/\\n.ui-helper-hidden {\\n\\tdisplay: none;\\n}\\n.ui-helper-hidden-accessible {\\n\\tborder: 0;\\n\\tclip: rect(0 0 0 0);\\n\\theight: 1px;\\n\\tmargin: -1px;\\n\\toverflow: hidden;\\n\\tpadding: 0;\\n\\tposition: absolute;\\n\\twidth: 1px;\\n}\\n.ui-helper-reset {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\toutline: 0;\\n\\tline-height: 1.3;\\n\\ttext-decoration: none;\\n\\tfont-size: 100%;\\n\\tlist-style: none;\\n}\\n.ui-helper-clearfix:before,\\n.ui-helper-clearfix:after {\\n\\tcontent: \\\"\\\";\\n\\tdisplay: table;\\n\\tborder-collapse: collapse;\\n}\\n.ui-helper-clearfix:after {\\n\\tclear: both;\\n}\\n.ui-helper-zfix {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tposition: absolute;\\n\\topacity: 0;\\n\\t-ms-filter: \\\"alpha(opacity=0)\\\"; /* support: IE8 */\\n}\\n\\n.ui-front {\\n\\tz-index: 100;\\n}\\n\\n\\n/* Interaction Cues\\n----------------------------------*/\\n.ui-state-disabled {\\n\\tcursor: default !important;\\n\\tpointer-events: none;\\n}\\n\\n\\n/* Icons\\n----------------------------------*/\\n.ui-icon {\\n\\tdisplay: inline-block;\\n\\tvertical-align: middle;\\n\\tmargin-top: -.25em;\\n\\tposition: relative;\\n\\ttext-indent: -99999px;\\n\\toverflow: hidden;\\n\\tbackground-repeat: no-repeat;\\n}\\n\\n.ui-widget-icon-block {\\n\\tleft: 50%;\\n\\tmargin-left: -8px;\\n\\tdisplay: block;\\n}\\n\\n/* Misc visuals\\n----------------------------------*/\\n\\n/* Overlays */\\n.ui-widget-overlay {\\n\\tposition: fixed;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n.ui-accordion .ui-accordion-header {\\n\\tdisplay: block;\\n\\tcursor: pointer;\\n\\tposition: relative;\\n\\tmargin: 2px 0 0 0;\\n\\tpadding: .5em .5em .5em .7em;\\n\\tfont-size: 100%;\\n}\\n.ui-accordion .ui-accordion-content {\\n\\tpadding: 1em 2.2em;\\n\\tborder-top: 0;\\n\\toverflow: auto;\\n}\\n.ui-autocomplete {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tcursor: default;\\n}\\n.ui-menu {\\n\\tlist-style: none;\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\tdisplay: block;\\n\\toutline: 0;\\n}\\n.ui-menu .ui-menu {\\n\\tposition: absolute;\\n}\\n.ui-menu .ui-menu-item {\\n\\tmargin: 0;\\n\\tcursor: pointer;\\n\\t/* support: IE10, see #8844 */\\n\\tlist-style-image: url(\\\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\\\");\\n}\\n.ui-menu .ui-menu-item-wrapper {\\n\\tposition: relative;\\n\\tpadding: 3px 1em 3px .4em;\\n}\\n.ui-menu .ui-menu-divider {\\n\\tmargin: 5px 0;\\n\\theight: 0;\\n\\tfont-size: 0;\\n\\tline-height: 0;\\n\\tborder-width: 1px 0 0 0;\\n}\\n.ui-menu .ui-state-focus,\\n.ui-menu .ui-state-active {\\n\\tmargin: -1px;\\n}\\n\\n/* icon support */\\n.ui-menu-icons {\\n\\tposition: relative;\\n}\\n.ui-menu-icons .ui-menu-item-wrapper {\\n\\tpadding-left: 2em;\\n}\\n\\n/* left-aligned */\\n.ui-menu .ui-icon {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tbottom: 0;\\n\\tleft: .2em;\\n\\tmargin: auto 0;\\n}\\n\\n/* right-aligned */\\n.ui-menu .ui-menu-icon {\\n\\tleft: auto;\\n\\tright: 0;\\n}\\n.ui-button {\\n\\tpadding: .4em 1em;\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\tline-height: normal;\\n\\tmargin-right: .1em;\\n\\tcursor: pointer;\\n\\tvertical-align: middle;\\n\\ttext-align: center;\\n\\t-webkit-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n\\n\\t/* Support: IE <= 11 */\\n\\toverflow: visible;\\n}\\n\\n.ui-button,\\n.ui-button:link,\\n.ui-button:visited,\\n.ui-button:hover,\\n.ui-button:active {\\n\\ttext-decoration: none;\\n}\\n\\n/* to make room for the icon, a width needs to be set here */\\n.ui-button-icon-only {\\n\\twidth: 2em;\\n\\tbox-sizing: border-box;\\n\\ttext-indent: -9999px;\\n\\twhite-space: nowrap;\\n}\\n\\n/* no icon support for input elements */\\ninput.ui-button.ui-button-icon-only {\\n\\ttext-indent: 0;\\n}\\n\\n/* button icon element(s) */\\n.ui-button-icon-only .ui-icon {\\n\\tposition: absolute;\\n\\ttop: 50%;\\n\\tleft: 50%;\\n\\tmargin-top: -8px;\\n\\tmargin-left: -8px;\\n}\\n\\n.ui-button.ui-icon-notext .ui-icon {\\n\\tpadding: 0;\\n\\twidth: 2.1em;\\n\\theight: 2.1em;\\n\\ttext-indent: -9999px;\\n\\twhite-space: nowrap;\\n\\n}\\n\\ninput.ui-button.ui-icon-notext .ui-icon {\\n\\twidth: auto;\\n\\theight: auto;\\n\\ttext-indent: 0;\\n\\twhite-space: normal;\\n\\tpadding: .4em 1em;\\n}\\n\\n/* workarounds */\\n/* Support: Firefox 5 - 40 */\\ninput.ui-button::-moz-focus-inner,\\nbutton.ui-button::-moz-focus-inner {\\n\\tborder: 0;\\n\\tpadding: 0;\\n}\\n.ui-controlgroup {\\n\\tvertical-align: middle;\\n\\tdisplay: inline-block;\\n}\\n.ui-controlgroup > .ui-controlgroup-item {\\n\\tfloat: left;\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n}\\n.ui-controlgroup > .ui-controlgroup-item:focus,\\n.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {\\n\\tz-index: 9999;\\n}\\n.ui-controlgroup-vertical > .ui-controlgroup-item {\\n\\tdisplay: block;\\n\\tfloat: none;\\n\\twidth: 100%;\\n\\tmargin-top: 0;\\n\\tmargin-bottom: 0;\\n\\ttext-align: left;\\n}\\n.ui-controlgroup-vertical .ui-controlgroup-item {\\n\\tbox-sizing: border-box;\\n}\\n.ui-controlgroup .ui-controlgroup-label {\\n\\tpadding: .4em 1em;\\n}\\n.ui-controlgroup .ui-controlgroup-label span {\\n\\tfont-size: 80%;\\n}\\n.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {\\n\\tborder-left: none;\\n}\\n.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {\\n\\tborder-top: none;\\n}\\n.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {\\n\\tborder-right: none;\\n}\\n.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {\\n\\tborder-bottom: none;\\n}\\n\\n/* Spinner specific style fixes */\\n.ui-controlgroup-vertical .ui-spinner-input {\\n\\n\\t/* Support: IE8 only, Android < 4.4 only */\\n\\twidth: 75%;\\n\\twidth: calc( 100% - 2.4em );\\n}\\n.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {\\n\\tborder-top-style: solid;\\n}\\n\\n.ui-checkboxradio-label .ui-icon-background {\\n\\tbox-shadow: inset 1px 1px 1px #ccc;\\n\\tborder-radius: .12em;\\n\\tborder: none;\\n}\\n.ui-checkboxradio-radio-label .ui-icon-background {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tborder-radius: 1em;\\n\\toverflow: visible;\\n\\tborder: none;\\n}\\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,\\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {\\n\\tbackground-image: none;\\n\\twidth: 8px;\\n\\theight: 8px;\\n\\tborder-width: 4px;\\n\\tborder-style: solid;\\n}\\n.ui-checkboxradio-disabled {\\n\\tpointer-events: none;\\n}\\n.ui-datepicker {\\n\\twidth: 17em;\\n\\tpadding: .2em .2em 0;\\n\\tdisplay: none;\\n}\\n.ui-datepicker .ui-datepicker-header {\\n\\tposition: relative;\\n\\tpadding: .2em 0;\\n}\\n.ui-datepicker .ui-datepicker-prev,\\n.ui-datepicker .ui-datepicker-next {\\n\\tposition: absolute;\\n\\ttop: 2px;\\n\\twidth: 1.8em;\\n\\theight: 1.8em;\\n}\\n.ui-datepicker .ui-datepicker-prev-hover,\\n.ui-datepicker .ui-datepicker-next-hover {\\n\\ttop: 1px;\\n}\\n.ui-datepicker .ui-datepicker-prev {\\n\\tleft: 2px;\\n}\\n.ui-datepicker .ui-datepicker-next {\\n\\tright: 2px;\\n}\\n.ui-datepicker .ui-datepicker-prev-hover {\\n\\tleft: 1px;\\n}\\n.ui-datepicker .ui-datepicker-next-hover {\\n\\tright: 1px;\\n}\\n.ui-datepicker .ui-datepicker-prev span,\\n.ui-datepicker .ui-datepicker-next span {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\tleft: 50%;\\n\\tmargin-left: -8px;\\n\\ttop: 50%;\\n\\tmargin-top: -8px;\\n}\\n.ui-datepicker .ui-datepicker-title {\\n\\tmargin: 0 2.3em;\\n\\tline-height: 1.8em;\\n\\ttext-align: center;\\n}\\n.ui-datepicker .ui-datepicker-title select {\\n\\tfont-size: 1em;\\n\\tmargin: 1px 0;\\n}\\n.ui-datepicker select.ui-datepicker-month,\\n.ui-datepicker select.ui-datepicker-year {\\n\\twidth: 45%;\\n}\\n.ui-datepicker table {\\n\\twidth: 100%;\\n\\tfont-size: .9em;\\n\\tborder-collapse: collapse;\\n\\tmargin: 0 0 .4em;\\n}\\n.ui-datepicker th {\\n\\tpadding: .7em .3em;\\n\\ttext-align: center;\\n\\tfont-weight: bold;\\n\\tborder: 0;\\n}\\n.ui-datepicker td {\\n\\tborder: 0;\\n\\tpadding: 1px;\\n}\\n.ui-datepicker td span,\\n.ui-datepicker td a {\\n\\tdisplay: block;\\n\\tpadding: .2em;\\n\\ttext-align: right;\\n\\ttext-decoration: none;\\n}\\n.ui-datepicker .ui-datepicker-buttonpane {\\n\\tbackground-image: none;\\n\\tmargin: .7em 0 0 0;\\n\\tpadding: 0 .2em;\\n\\tborder-left: 0;\\n\\tborder-right: 0;\\n\\tborder-bottom: 0;\\n}\\n.ui-datepicker .ui-datepicker-buttonpane button {\\n\\tfloat: right;\\n\\tmargin: .5em .2em .4em;\\n\\tcursor: pointer;\\n\\tpadding: .2em .6em .3em .6em;\\n\\twidth: auto;\\n\\toverflow: visible;\\n}\\n.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {\\n\\tfloat: left;\\n}\\n\\n/* with multiple calendars */\\n.ui-datepicker.ui-datepicker-multi {\\n\\twidth: auto;\\n}\\n.ui-datepicker-multi .ui-datepicker-group {\\n\\tfloat: left;\\n}\\n.ui-datepicker-multi .ui-datepicker-group table {\\n\\twidth: 95%;\\n\\tmargin: 0 auto .4em;\\n}\\n.ui-datepicker-multi-2 .ui-datepicker-group {\\n\\twidth: 50%;\\n}\\n.ui-datepicker-multi-3 .ui-datepicker-group {\\n\\twidth: 33.3%;\\n}\\n.ui-datepicker-multi-4 .ui-datepicker-group {\\n\\twidth: 25%;\\n}\\n.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,\\n.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {\\n\\tborder-left-width: 0;\\n}\\n.ui-datepicker-multi .ui-datepicker-buttonpane {\\n\\tclear: left;\\n}\\n.ui-datepicker-row-break {\\n\\tclear: both;\\n\\twidth: 100%;\\n\\tfont-size: 0;\\n}\\n\\n/* RTL support */\\n.ui-datepicker-rtl {\\n\\tdirection: rtl;\\n}\\n.ui-datepicker-rtl .ui-datepicker-prev {\\n\\tright: 2px;\\n\\tleft: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-next {\\n\\tleft: 2px;\\n\\tright: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-prev:hover {\\n\\tright: 1px;\\n\\tleft: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-next:hover {\\n\\tleft: 1px;\\n\\tright: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-buttonpane {\\n\\tclear: right;\\n}\\n.ui-datepicker-rtl .ui-datepicker-buttonpane button {\\n\\tfloat: left;\\n}\\n.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,\\n.ui-datepicker-rtl .ui-datepicker-group {\\n\\tfloat: right;\\n}\\n.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,\\n.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {\\n\\tborder-right-width: 0;\\n\\tborder-left-width: 1px;\\n}\\n\\n/* Icons */\\n.ui-datepicker .ui-icon {\\n\\tdisplay: block;\\n\\ttext-indent: -99999px;\\n\\toverflow: hidden;\\n\\tbackground-repeat: no-repeat;\\n\\tleft: .5em;\\n\\ttop: .3em;\\n}\\n.ui-dialog {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tpadding: .2em;\\n\\toutline: 0;\\n}\\n.ui-dialog .ui-dialog-titlebar {\\n\\tpadding: .4em 1em;\\n\\tposition: relative;\\n}\\n.ui-dialog .ui-dialog-title {\\n\\tfloat: left;\\n\\tmargin: .1em 0;\\n\\twhite-space: nowrap;\\n\\twidth: 90%;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n}\\n.ui-dialog .ui-dialog-titlebar-close {\\n\\tposition: absolute;\\n\\tright: .3em;\\n\\ttop: 50%;\\n\\twidth: 20px;\\n\\tmargin: -10px 0 0 0;\\n\\tpadding: 1px;\\n\\theight: 20px;\\n}\\n.ui-dialog .ui-dialog-content {\\n\\tposition: relative;\\n\\tborder: 0;\\n\\tpadding: .5em 1em;\\n\\tbackground: none;\\n\\toverflow: auto;\\n}\\n.ui-dialog .ui-dialog-buttonpane {\\n\\ttext-align: left;\\n\\tborder-width: 1px 0 0 0;\\n\\tbackground-image: none;\\n\\tmargin-top: .5em;\\n\\tpadding: .3em 1em .5em .4em;\\n}\\n.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\\n\\tfloat: right;\\n}\\n.ui-dialog .ui-dialog-buttonpane button {\\n\\tmargin: .5em .4em .5em 0;\\n\\tcursor: pointer;\\n}\\n.ui-dialog .ui-resizable-n {\\n\\theight: 2px;\\n\\ttop: 0;\\n}\\n.ui-dialog .ui-resizable-e {\\n\\twidth: 2px;\\n\\tright: 0;\\n}\\n.ui-dialog .ui-resizable-s {\\n\\theight: 2px;\\n\\tbottom: 0;\\n}\\n.ui-dialog .ui-resizable-w {\\n\\twidth: 2px;\\n\\tleft: 0;\\n}\\n.ui-dialog .ui-resizable-se,\\n.ui-dialog .ui-resizable-sw,\\n.ui-dialog .ui-resizable-ne,\\n.ui-dialog .ui-resizable-nw {\\n\\twidth: 7px;\\n\\theight: 7px;\\n}\\n.ui-dialog .ui-resizable-se {\\n\\tright: 0;\\n\\tbottom: 0;\\n}\\n.ui-dialog .ui-resizable-sw {\\n\\tleft: 0;\\n\\tbottom: 0;\\n}\\n.ui-dialog .ui-resizable-ne {\\n\\tright: 0;\\n\\ttop: 0;\\n}\\n.ui-dialog .ui-resizable-nw {\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n.ui-draggable .ui-dialog-titlebar {\\n\\tcursor: move;\\n}\\n.ui-draggable-handle {\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-resizable {\\n\\tposition: relative;\\n}\\n.ui-resizable-handle {\\n\\tposition: absolute;\\n\\tfont-size: 0.1px;\\n\\tdisplay: block;\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-resizable-disabled .ui-resizable-handle,\\n.ui-resizable-autohide .ui-resizable-handle {\\n\\tdisplay: none;\\n}\\n.ui-resizable-n {\\n\\tcursor: n-resize;\\n\\theight: 7px;\\n\\twidth: 100%;\\n\\ttop: -5px;\\n\\tleft: 0;\\n}\\n.ui-resizable-s {\\n\\tcursor: s-resize;\\n\\theight: 7px;\\n\\twidth: 100%;\\n\\tbottom: -5px;\\n\\tleft: 0;\\n}\\n.ui-resizable-e {\\n\\tcursor: e-resize;\\n\\twidth: 7px;\\n\\tright: -5px;\\n\\ttop: 0;\\n\\theight: 100%;\\n}\\n.ui-resizable-w {\\n\\tcursor: w-resize;\\n\\twidth: 7px;\\n\\tleft: -5px;\\n\\ttop: 0;\\n\\theight: 100%;\\n}\\n.ui-resizable-se {\\n\\tcursor: se-resize;\\n\\twidth: 12px;\\n\\theight: 12px;\\n\\tright: 1px;\\n\\tbottom: 1px;\\n}\\n.ui-resizable-sw {\\n\\tcursor: sw-resize;\\n\\twidth: 9px;\\n\\theight: 9px;\\n\\tleft: -5px;\\n\\tbottom: -5px;\\n}\\n.ui-resizable-nw {\\n\\tcursor: nw-resize;\\n\\twidth: 9px;\\n\\theight: 9px;\\n\\tleft: -5px;\\n\\ttop: -5px;\\n}\\n.ui-resizable-ne {\\n\\tcursor: ne-resize;\\n\\twidth: 9px;\\n\\theight: 9px;\\n\\tright: -5px;\\n\\ttop: -5px;\\n}\\n.ui-progressbar {\\n\\theight: 2em;\\n\\ttext-align: left;\\n\\toverflow: hidden;\\n}\\n.ui-progressbar .ui-progressbar-value {\\n\\tmargin: -1px;\\n\\theight: 100%;\\n}\\n.ui-progressbar .ui-progressbar-overlay {\\n\\tbackground: url(\\\"data:image/gif;base64,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\\\");\\n\\theight: 100%;\\n\\t-ms-filter: \\\"alpha(opacity=25)\\\"; /* support: IE8 */\\n\\topacity: 0.25;\\n}\\n.ui-progressbar-indeterminate .ui-progressbar-value {\\n\\tbackground-image: none;\\n}\\n.ui-selectable {\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-selectable-helper {\\n\\tposition: absolute;\\n\\tz-index: 100;\\n\\tborder: 1px dotted black;\\n}\\n.ui-selectmenu-menu {\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tdisplay: none;\\n}\\n.ui-selectmenu-menu .ui-menu {\\n\\toverflow: auto;\\n\\toverflow-x: hidden;\\n\\tpadding-bottom: 1px;\\n}\\n.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {\\n\\tfont-size: 1em;\\n\\tfont-weight: bold;\\n\\tline-height: 1.5;\\n\\tpadding: 2px 0.4em;\\n\\tmargin: 0.5em 0 0 0;\\n\\theight: auto;\\n\\tborder: 0;\\n}\\n.ui-selectmenu-open {\\n\\tdisplay: block;\\n}\\n.ui-selectmenu-text {\\n\\tdisplay: block;\\n\\tmargin-right: 20px;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n}\\n.ui-selectmenu-button.ui-button {\\n\\ttext-align: left;\\n\\twhite-space: nowrap;\\n\\twidth: 14em;\\n}\\n.ui-selectmenu-icon.ui-icon {\\n\\tfloat: right;\\n\\tmargin-top: 0;\\n}\\n.ui-slider {\\n\\tposition: relative;\\n\\ttext-align: left;\\n}\\n.ui-slider .ui-slider-handle {\\n\\tposition: absolute;\\n\\tz-index: 2;\\n\\twidth: 1.2em;\\n\\theight: 1.2em;\\n\\tcursor: pointer;\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-slider .ui-slider-range {\\n\\tposition: absolute;\\n\\tz-index: 1;\\n\\tfont-size: .7em;\\n\\tdisplay: block;\\n\\tborder: 0;\\n\\tbackground-position: 0 0;\\n}\\n\\n/* support: IE8 - See #6727 */\\n.ui-slider.ui-state-disabled .ui-slider-handle,\\n.ui-slider.ui-state-disabled .ui-slider-range {\\n\\tfilter: inherit;\\n}\\n\\n.ui-slider-horizontal {\\n\\theight: .8em;\\n}\\n.ui-slider-horizontal .ui-slider-handle {\\n\\ttop: -.3em;\\n\\tmargin-left: -.6em;\\n}\\n.ui-slider-horizontal .ui-slider-range {\\n\\ttop: 0;\\n\\theight: 100%;\\n}\\n.ui-slider-horizontal .ui-slider-range-min {\\n\\tleft: 0;\\n}\\n.ui-slider-horizontal .ui-slider-range-max {\\n\\tright: 0;\\n}\\n\\n.ui-slider-vertical {\\n\\twidth: .8em;\\n\\theight: 100px;\\n}\\n.ui-slider-vertical .ui-slider-handle {\\n\\tleft: -.3em;\\n\\tmargin-left: 0;\\n\\tmargin-bottom: -.6em;\\n}\\n.ui-slider-vertical .ui-slider-range {\\n\\tleft: 0;\\n\\twidth: 100%;\\n}\\n.ui-slider-vertical .ui-slider-range-min {\\n\\tbottom: 0;\\n}\\n.ui-slider-vertical .ui-slider-range-max {\\n\\ttop: 0;\\n}\\n.ui-sortable-handle {\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-spinner {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\toverflow: hidden;\\n\\tpadding: 0;\\n\\tvertical-align: middle;\\n}\\n.ui-spinner-input {\\n\\tborder: none;\\n\\tbackground: none;\\n\\tcolor: inherit;\\n\\tpadding: .222em 0;\\n\\tmargin: .2em 0;\\n\\tvertical-align: middle;\\n\\tmargin-left: .4em;\\n\\tmargin-right: 2em;\\n}\\n.ui-spinner-button {\\n\\twidth: 1.6em;\\n\\theight: 50%;\\n\\tfont-size: .5em;\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\ttext-align: center;\\n\\tposition: absolute;\\n\\tcursor: default;\\n\\tdisplay: block;\\n\\toverflow: hidden;\\n\\tright: 0;\\n}\\n/* more specificity required here to override default borders */\\n.ui-spinner a.ui-spinner-button {\\n\\tborder-top-style: none;\\n\\tborder-bottom-style: none;\\n\\tborder-right-style: none;\\n}\\n.ui-spinner-up {\\n\\ttop: 0;\\n}\\n.ui-spinner-down {\\n\\tbottom: 0;\\n}\\n.ui-tabs {\\n\\tposition: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as \\\"fixed\\\") */\\n\\tpadding: .2em;\\n}\\n.ui-tabs .ui-tabs-nav {\\n\\tmargin: 0;\\n\\tpadding: .2em .2em 0;\\n}\\n.ui-tabs .ui-tabs-nav li {\\n\\tlist-style: none;\\n\\tfloat: left;\\n\\tposition: relative;\\n\\ttop: 0;\\n\\tmargin: 1px .2em 0 0;\\n\\tborder-bottom-width: 0;\\n\\tpadding: 0;\\n\\twhite-space: nowrap;\\n}\\n.ui-tabs .ui-tabs-nav .ui-tabs-anchor {\\n\\tfloat: left;\\n\\tpadding: .5em 1em;\\n\\ttext-decoration: none;\\n}\\n.ui-tabs .ui-tabs-nav li.ui-tabs-active {\\n\\tmargin-bottom: -1px;\\n\\tpadding-bottom: 1px;\\n}\\n.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,\\n.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,\\n.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {\\n\\tcursor: text;\\n}\\n.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {\\n\\tcursor: pointer;\\n}\\n.ui-tabs .ui-tabs-panel {\\n\\tdisplay: block;\\n\\tborder-width: 0;\\n\\tpadding: 1em 1.4em;\\n\\tbackground: none;\\n}\\n.ui-tooltip {\\n\\tpadding: 8px;\\n\\tposition: absolute;\\n\\tz-index: 9999;\\n\\tmax-width: 300px;\\n}\\nbody .ui-tooltip {\\n\\tborder-width: 2px;\\n}\\n\\n/* Component containers\\n----------------------------------*/\\n.ui-widget {\\n\\tfont-family: Arial,Helvetica,sans-serif;\\n\\tfont-size: 1em;\\n}\\n.ui-widget .ui-widget {\\n\\tfont-size: 1em;\\n}\\n.ui-widget input,\\n.ui-widget select,\\n.ui-widget textarea,\\n.ui-widget button {\\n\\tfont-family: Arial,Helvetica,sans-serif;\\n\\tfont-size: 1em;\\n}\\n.ui-widget.ui-widget-content {\\n\\tborder: 1px solid #c5c5c5;\\n}\\n.ui-widget-content {\\n\\tborder: 1px solid #dddddd;\\n\\tbackground: #ffffff;\\n\\tcolor: #333333;\\n}\\n.ui-widget-content a {\\n\\tcolor: #333333;\\n}\\n.ui-widget-header {\\n\\tborder: 1px solid #dddddd;\\n\\tbackground: #e9e9e9;\\n\\tcolor: #333333;\\n\\tfont-weight: bold;\\n}\\n.ui-widget-header a {\\n\\tcolor: #333333;\\n}\\n\\n/* Interaction states\\n----------------------------------*/\\n.ui-state-default,\\n.ui-widget-content .ui-state-default,\\n.ui-widget-header .ui-state-default,\\n.ui-button,\\n\\n/* We use html here because we need a greater specificity to make sure disabled\\nworks properly when clicked or hovered */\\nhtml .ui-button.ui-state-disabled:hover,\\nhtml .ui-button.ui-state-disabled:active {\\n\\tborder: 1px solid #c5c5c5;\\n\\tbackground: #f6f6f6;\\n\\tfont-weight: normal;\\n\\tcolor: #454545;\\n}\\n.ui-state-default a,\\n.ui-state-default a:link,\\n.ui-state-default a:visited,\\na.ui-button,\\na:link.ui-button,\\na:visited.ui-button,\\n.ui-button {\\n\\tcolor: #454545;\\n\\ttext-decoration: none;\\n}\\n.ui-state-hover,\\n.ui-widget-content .ui-state-hover,\\n.ui-widget-header .ui-state-hover,\\n.ui-state-focus,\\n.ui-widget-content .ui-state-focus,\\n.ui-widget-header .ui-state-focus,\\n.ui-button:hover,\\n.ui-button:focus {\\n\\tborder: 1px solid #cccccc;\\n\\tbackground: #ededed;\\n\\tfont-weight: normal;\\n\\tcolor: #2b2b2b;\\n}\\n.ui-state-hover a,\\n.ui-state-hover a:hover,\\n.ui-state-hover a:link,\\n.ui-state-hover a:visited,\\n.ui-state-focus a,\\n.ui-state-focus a:hover,\\n.ui-state-focus a:link,\\n.ui-state-focus a:visited,\\na.ui-button:hover,\\na.ui-button:focus {\\n\\tcolor: #2b2b2b;\\n\\ttext-decoration: none;\\n}\\n\\n.ui-visual-focus {\\n\\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\\n}\\n.ui-state-active,\\n.ui-widget-content .ui-state-active,\\n.ui-widget-header .ui-state-active,\\na.ui-button:active,\\n.ui-button:active,\\n.ui-button.ui-state-active:hover {\\n\\tborder: 1px solid #003eff;\\n\\tbackground: #007fff;\\n\\tfont-weight: normal;\\n\\tcolor: #ffffff;\\n}\\n.ui-icon-background,\\n.ui-state-active .ui-icon-background {\\n\\tborder: #003eff;\\n\\tbackground-color: #ffffff;\\n}\\n.ui-state-active a,\\n.ui-state-active a:link,\\n.ui-state-active a:visited {\\n\\tcolor: #ffffff;\\n\\ttext-decoration: none;\\n}\\n\\n/* Interaction Cues\\n----------------------------------*/\\n.ui-state-highlight,\\n.ui-widget-content .ui-state-highlight,\\n.ui-widget-header .ui-state-highlight {\\n\\tborder: 1px solid #dad55e;\\n\\tbackground: #fffa90;\\n\\tcolor: #777620;\\n}\\n.ui-state-checked {\\n\\tborder: 1px solid #dad55e;\\n\\tbackground: #fffa90;\\n}\\n.ui-state-highlight a,\\n.ui-widget-content .ui-state-highlight a,\\n.ui-widget-header .ui-state-highlight a {\\n\\tcolor: #777620;\\n}\\n.ui-state-error,\\n.ui-widget-content .ui-state-error,\\n.ui-widget-header .ui-state-error {\\n\\tborder: 1px solid #f1a899;\\n\\tbackground: #fddfdf;\\n\\tcolor: #5f3f3f;\\n}\\n.ui-state-error a,\\n.ui-widget-content .ui-state-error a,\\n.ui-widget-header .ui-state-error a {\\n\\tcolor: #5f3f3f;\\n}\\n.ui-state-error-text,\\n.ui-widget-content .ui-state-error-text,\\n.ui-widget-header .ui-state-error-text {\\n\\tcolor: #5f3f3f;\\n}\\n.ui-priority-primary,\\n.ui-widget-content .ui-priority-primary,\\n.ui-widget-header .ui-priority-primary {\\n\\tfont-weight: bold;\\n}\\n.ui-priority-secondary,\\n.ui-widget-content .ui-priority-secondary,\\n.ui-widget-header .ui-priority-secondary {\\n\\topacity: .7;\\n\\t-ms-filter: \\\"alpha(opacity=70)\\\"; /* support: IE8 */\\n\\tfont-weight: normal;\\n}\\n.ui-state-disabled,\\n.ui-widget-content .ui-state-disabled,\\n.ui-widget-header .ui-state-disabled {\\n\\topacity: .35;\\n\\t-ms-filter: \\\"alpha(opacity=35)\\\"; /* support: IE8 */\\n\\tbackground-image: none;\\n}\\n.ui-state-disabled .ui-icon {\\n\\t-ms-filter: \\\"alpha(opacity=35)\\\"; /* support: IE8 - See #6059 */\\n}\\n\\n/* Icons\\n----------------------------------*/\\n\\n/* states and images */\\n.ui-icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n}\\n.ui-icon,\\n.ui-widget-content .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_444444_256x240.png\\\");\\n}\\n.ui-widget-header .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_444444_256x240.png\\\");\\n}\\n.ui-state-hover .ui-icon,\\n.ui-state-focus .ui-icon,\\n.ui-button:hover .ui-icon,\\n.ui-button:focus .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_555555_256x240.png\\\");\\n}\\n.ui-state-active .ui-icon,\\n.ui-button:active .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_ffffff_256x240.png\\\");\\n}\\n.ui-state-highlight .ui-icon,\\n.ui-button .ui-state-highlight.ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_777620_256x240.png\\\");\\n}\\n.ui-state-error .ui-icon,\\n.ui-state-error-text .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_cc0000_256x240.png\\\");\\n}\\n.ui-button .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_777777_256x240.png\\\");\\n}\\n\\n/* positioning */\\n/* Three classes needed to override `.ui-button:hover .ui-icon` */\\n.ui-icon-blank.ui-icon-blank.ui-icon-blank {\\n\\tbackground-image: none;\\n}\\n.ui-icon-caret-1-n { background-position: 0 0; }\\n.ui-icon-caret-1-ne { background-position: -16px 0; }\\n.ui-icon-caret-1-e { background-position: -32px 0; }\\n.ui-icon-caret-1-se { background-position: -48px 0; }\\n.ui-icon-caret-1-s { background-position: -65px 0; }\\n.ui-icon-caret-1-sw { background-position: -80px 0; }\\n.ui-icon-caret-1-w { background-position: -96px 0; }\\n.ui-icon-caret-1-nw { background-position: -112px 0; }\\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\\n.ui-icon-arrow-4 { background-position: 0 -80px; }\\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\\n.ui-icon-extlink { background-position: -32px -80px; }\\n.ui-icon-newwin { background-position: -48px -80px; }\\n.ui-icon-refresh { background-position: -64px -80px; }\\n.ui-icon-shuffle { background-position: -80px -80px; }\\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\\n.ui-icon-folder-open { background-position: -16px -96px; }\\n.ui-icon-document { background-position: -32px -96px; }\\n.ui-icon-document-b { background-position: -48px -96px; }\\n.ui-icon-note { background-position: -64px -96px; }\\n.ui-icon-mail-closed { background-position: -80px -96px; }\\n.ui-icon-mail-open { background-position: -96px -96px; }\\n.ui-icon-suitcase { background-position: -112px -96px; }\\n.ui-icon-comment { background-position: -128px -96px; }\\n.ui-icon-person { background-position: -144px -96px; }\\n.ui-icon-print { background-position: -160px -96px; }\\n.ui-icon-trash { background-position: -176px -96px; }\\n.ui-icon-locked { background-position: -192px -96px; }\\n.ui-icon-unlocked { background-position: -208px -96px; }\\n.ui-icon-bookmark { background-position: -224px -96px; }\\n.ui-icon-tag { background-position: -240px -96px; }\\n.ui-icon-home { background-position: 0 -112px; }\\n.ui-icon-flag { background-position: -16px -112px; }\\n.ui-icon-calendar { background-position: -32px -112px; }\\n.ui-icon-cart { background-position: -48px -112px; }\\n.ui-icon-pencil { background-position: -64px -112px; }\\n.ui-icon-clock { background-position: -80px -112px; }\\n.ui-icon-disk { background-position: -96px -112px; }\\n.ui-icon-calculator { background-position: -112px -112px; }\\n.ui-icon-zoomin { background-position: -128px -112px; }\\n.ui-icon-zoomout { background-position: -144px -112px; }\\n.ui-icon-search { background-position: -160px -112px; }\\n.ui-icon-wrench { background-position: -176px -112px; }\\n.ui-icon-gear { background-position: -192px -112px; }\\n.ui-icon-heart { background-position: -208px -112px; }\\n.ui-icon-star { background-position: -224px -112px; }\\n.ui-icon-link { background-position: -240px -112px; }\\n.ui-icon-cancel { background-position: 0 -128px; }\\n.ui-icon-plus { background-position: -16px -128px; }\\n.ui-icon-plusthick { background-position: -32px -128px; }\\n.ui-icon-minus { background-position: -48px -128px; }\\n.ui-icon-minusthick { background-position: -64px -128px; }\\n.ui-icon-close { background-position: -80px -128px; }\\n.ui-icon-closethick { background-position: -96px -128px; }\\n.ui-icon-key { background-position: -112px -128px; }\\n.ui-icon-lightbulb { background-position: -128px -128px; }\\n.ui-icon-scissors { background-position: -144px -128px; }\\n.ui-icon-clipboard { background-position: -160px -128px; }\\n.ui-icon-copy { background-position: -176px -128px; }\\n.ui-icon-contact { background-position: -192px -128px; }\\n.ui-icon-image { background-position: -208px -128px; }\\n.ui-icon-video { background-position: -224px -128px; }\\n.ui-icon-script { background-position: -240px -128px; }\\n.ui-icon-alert { background-position: 0 -144px; }\\n.ui-icon-info { background-position: -16px -144px; }\\n.ui-icon-notice { background-position: -32px -144px; }\\n.ui-icon-help { background-position: -48px -144px; }\\n.ui-icon-check { background-position: -64px -144px; }\\n.ui-icon-bullet { background-position: -80px -144px; }\\n.ui-icon-radio-on { background-position: -96px -144px; }\\n.ui-icon-radio-off { background-position: -112px -144px; }\\n.ui-icon-pin-w { background-position: -128px -144px; }\\n.ui-icon-pin-s { background-position: -144px -144px; }\\n.ui-icon-play { background-position: 0 -160px; }\\n.ui-icon-pause { background-position: -16px -160px; }\\n.ui-icon-seek-next { background-position: -32px -160px; }\\n.ui-icon-seek-prev { background-position: -48px -160px; }\\n.ui-icon-seek-end { background-position: -64px -160px; }\\n.ui-icon-seek-start { background-position: -80px -160px; }\\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\\n.ui-icon-seek-first { background-position: -80px -160px; }\\n.ui-icon-stop { background-position: -96px -160px; }\\n.ui-icon-eject { background-position: -112px -160px; }\\n.ui-icon-volume-off { background-position: -128px -160px; }\\n.ui-icon-volume-on { background-position: -144px -160px; }\\n.ui-icon-power { background-position: 0 -176px; }\\n.ui-icon-signal-diag { background-position: -16px -176px; }\\n.ui-icon-signal { background-position: -32px -176px; }\\n.ui-icon-battery-0 { background-position: -48px -176px; }\\n.ui-icon-battery-1 { background-position: -64px -176px; }\\n.ui-icon-battery-2 { background-position: -80px -176px; }\\n.ui-icon-battery-3 { background-position: -96px -176px; }\\n.ui-icon-circle-plus { background-position: 0 -192px; }\\n.ui-icon-circle-minus { background-position: -16px -192px; }\\n.ui-icon-circle-close { background-position: -32px -192px; }\\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\\n.ui-icon-circle-check { background-position: -208px -192px; }\\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\\n\\n\\n/* Misc visuals\\n----------------------------------*/\\n\\n/* Corner radius */\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-left,\\n.ui-corner-tl {\\n\\tborder-top-left-radius: 3px;\\n}\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-right,\\n.ui-corner-tr {\\n\\tborder-top-right-radius: 3px;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-left,\\n.ui-corner-bl {\\n\\tborder-bottom-left-radius: 3px;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-right,\\n.ui-corner-br {\\n\\tborder-bottom-right-radius: 3px;\\n}\\n\\n/* Overlays */\\n.ui-widget-overlay {\\n\\tbackground: #aaaaaa;\\n\\topacity: .003;\\n\\t-ms-filter: \\\"alpha(opacity=.3)\\\"; /* support: IE8 */\\n}\\n.ui-widget-shadow {\\n\\t-webkit-box-shadow: 0px 0px 5px #666666;\\n\\tbox-shadow: 0px 0px 5px #666666;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n try {\n // eslint-disable-next-line no-new -- thrower\n new DataView(O);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aDataView = require('../internals/a-data-view');\nvar toIndex = require('../internals/to-index');\n// TODO: Replace with module dependency in `core-js@4`\nvar log2 = require('../internals/math-log2');\nvar roundTiesToEven = require('../internals/math-round-ties-to-even');\n\nvar pow = Math.pow;\n\nvar MIN_INFINITY16 = 65520; // (2 - 2 ** -11) * 2 ** 15\nvar MIN_NORMAL16 = 0.000061005353927612305; // (1 - 2 ** -11) * 2 ** -14\nvar REC_MIN_SUBNORMAL16 = 16777216; // 2 ** 10 * 2 ** 14\nvar REC_SIGNIFICAND_DENOM16 = 1024; // 2 ** 10;\n\nvar packFloat16 = function (value) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return 0x7E00; // NaN\n if (value === 0) return (1 / value === -Infinity) << 15; // +0 or -0\n\n var neg = value < 0;\n if (neg) value = -value;\n if (value >= MIN_INFINITY16) return neg << 15 | 0x7C00; // Infinity\n if (value < MIN_NORMAL16) return neg << 15 | roundTiesToEven(value * REC_MIN_SUBNORMAL16); // subnormal\n\n // normal\n var exponent = log2(value) | 0;\n if (exponent === -15) {\n // we round from a value between 2 ** -15 * (1 + 1022/1024) (the largest subnormal) and 2 ** -14 * (1 + 0/1024) (the smallest normal)\n // to the latter (former impossible because of the subnormal check above)\n return neg << 15 | REC_SIGNIFICAND_DENOM16;\n }\n var significand = roundTiesToEven((value * pow(2, -exponent) - 1) * REC_SIGNIFICAND_DENOM16);\n if (significand === REC_SIGNIFICAND_DENOM16) {\n // we round from a value between 2 ** n * (1 + 1023/1024) and 2 ** (n + 1) * (1 + 0/1024) to the latter\n return neg << 15 | exponent + 16 << 10;\n }\n return neg << 15 | exponent + 15 << 10 | significand;\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint16 = uncurryThis(DataView.prototype.setUint16);\n\n// `DataView.prototype.setFloat16` method\n// https://tc39.es/ecma262/#sec-dataview.prototype.setfloat16\n$({ target: 'DataView', proto: true }, {\n setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) {\n setUint16(\n aDataView(this),\n toIndex(byteOffset),\n packFloat16(+value),\n arguments.length > 2 ? arguments[2] : false\n );\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\n\nvar FORCED = !fails(function () {\n return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://tc39.es/ecma262/#sec-aggregate-error\n$({ global: true, constructor: true, arity: 2, forced: FORCED }, {\n AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n return function AggregateError(errors, message) { return apply(init, this, arguments); };\n }, FORCED, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT16_EPSILON = 0.0009765625;\nvar FLOAT16_MAX_VALUE = 65504;\nvar FLOAT16_MIN_VALUE = 6.103515625e-05;\n\n// `Math.f16round` method\n// https://tc39.es/ecma262/#sec-math.f16round\n$({ target: 'Math', stat: true }, {\n f16round: function f16round(x) {\n return floatRound(x, FLOAT16_EPSILON, FLOAT16_MAX_VALUE, FLOAT16_MIN_VALUE);\n }\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n ArrayBuffer.isView &&\n (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n // No need to do anything for exact instance\n // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n if (data instanceof Buffer) return data\n\n // Convert strings to Buffer\n if (typeof data === 'string') return Buffer.from(data, encoding)\n\n /*\n * Wrap any TypedArray instances and DataViews\n * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n */\n if (useArrayBuffer && ArrayBuffer.isView(data)) {\n if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n // Recheck result size, as offset/length doesn't work on Node.js <5.10\n // We just go to Uint8Array case if this fails\n if (res.byteLength === data.byteLength) return res\n }\n\n /*\n * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n * Doesn't make sense with other TypedArray instances\n */\n if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n /*\n * Old Buffer polyfill on an engine that doesn't have TypedArray support\n * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n * Convert to our current Buffer implementation\n */\n if (\n Buffer.isBuffer(data) &&\n data.constructor &&\n typeof data.constructor.isBuffer === 'function' &&\n data.constructor.isBuffer(data)\n ) {\n return Buffer.from(data)\n }\n\n throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n if (this._finalized) throw new Error('Digest already called')\n\n data = toBuffer(data, encoding) // asserts correct input type\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(globalThis.JSON, 'JSON', true);\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isObject(regexp) ? getMethod(regexp, SEARCH) : undefined;\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof');\nvar fails = require('../internals/fails');\n\nvar ERROR = 'Error';\nvar DOM_EXCEPTION = 'DOMException';\n// eslint-disable-next-line es/no-object-setprototypeof, no-proto -- safe\nvar PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || ({}).__proto__;\n\nvar DOMException = getBuiltIn(DOM_EXCEPTION);\nvar $Error = Error;\n// eslint-disable-next-line es/no-error-iserror -- safe\nvar $isError = $Error.isError;\n\nvar FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () {\n // Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc.\n // https://github.com/oven-sh/bun/issues/15821\n return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) ||\n // structuredClone-based implementations\n // eslint-disable-next-line es/no-error-cause -- detection\n !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) ||\n // instanceof-based and FF Error#stack-based implementations\n $isError(getBuiltIn('Object', 'create')($Error.prototype));\n});\n\n// `Error.isError` method\n// https://tc39.es/ecma262/#sec-error.iserror\n$({ target: 'Error', stat: true, sham: true, forced: FORCED }, {\n isError: function isError(arg) {\n if (!isObject(arg)) return false;\n var tag = classof(arg);\n return tag === ERROR || tag === DOM_EXCEPTION;\n }\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = globalThis.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = globalThis.RangeError;\nvar TypeError = globalThis.TypeError;\nvar QObject = globalThis.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? globalThis : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://tc39.es/ecma262/#sec-symbol.prototype.description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {\n forEach: function forEach(fn) {\n anObject(this);\n try {\n aCallable(fn);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n if (result == null) {\n return result;\n }\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({ lookupProperty: lookupProperty }, options);\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztH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QUFDbkMsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFkLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ2xELENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQ09NUElMRVJfUkVWSVNJT04sXG4gIGNyZWF0ZUZyYW1lLFxuICBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04sXG4gIFJFVklTSU9OX0NIQU5HRVNcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG1vdmVIZWxwZXJUb0hvb2tzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHdyYXBIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsL3dyYXBIZWxwZXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sLFxuICByZXN1bHRJc0FsbG93ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgY29uc3QgY29tcGlsZXJSZXZpc2lvbiA9IChjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdKSB8fCAxLFxuICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChcbiAgICBjb21waWxlclJldmlzaW9uID49IExBU1RfQ09NUEFUSUJMRV9DT01QSUxFUl9SRVZJU0lPTiAmJlxuICAgIGNvbXBpbGVyUmV2aXNpb24gPD0gQ09NUElMRVJfUkVWSVNJT05cbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04pIHtcbiAgICBjb25zdCBydW50aW1lVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2N1cnJlbnRSZXZpc2lvbl0sXG4gICAgICBjb21waWxlclZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjb21waWxlclJldmlzaW9uXTtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIHJ1bnRpbWVWZXJzaW9ucyArXG4gICAgICAgICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcnVudGltZSB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlckluZm9bMV0gK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgY29uc3QgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3ID1cbiAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXIgJiYgdGVtcGxhdGVTcGVjLmNvbXBpbGVyWzBdID09PSA3O1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFydGlhbCA9IGVudi5WTS5yZXNvbHZlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGV4dGVuZGVkT3B0aW9ucyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICBwcm90b0FjY2Vzc0NvbnRyb2w6IHRoaXMucHJvdG9BY2Nlc3NDb250cm9sXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBwYXJ0aWFsLFxuICAgICAgY29udGV4dCxcbiAgICAgIGV4dGVuZGVkT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKFxuICAgICAgICBwYXJ0aWFsLFxuICAgICAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJPcHRpb25zLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgICAnVGhlIHBhcnRpYWwgJyArXG4gICAgICAgICAgb3B0aW9ucy5uYW1lICtcbiAgICAgICAgICAnIGNvdWxkIG5vdCBiZSBjb21waWxlZCB3aGVuIHJ1bm5pbmcgaW4gcnVudGltZS1vbmx5IG1vZGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUsIGxvYykge1xuICAgICAgaWYgKCFvYmogfHwgIShuYW1lIGluIG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignXCInICsgbmFtZSArICdcIiBub3QgZGVmaW5lZCBpbiAnICsgb2JqLCB7XG4gICAgICAgICAgbG9jOiBsb2NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5KG9iaiwgbmFtZSk7XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIGxldCByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uKGRlcHRocywgbmFtZSkge1xuICAgICAgY29uc3QgbGVuID0gZGVwdGhzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRlcHRoc1tpXSAmJiBjb250YWluZXIubG9va3VwUHJvcGVydHkoZGVwdGhzW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICBmbiA9IHRoaXMuZm4oaSk7XG4gICAgICBpZiAoZGF0YSB8fCBkZXB0aHMgfHwgYmxvY2tQYXJhbXMgfHwgZGVjbGFyZWRCbG9ja1BhcmFtcykge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHdyYXBQcm9ncmFtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgaSxcbiAgICAgICAgICBmbixcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlY2xhcmVkQmxvY2tQYXJhbXMsXG4gICAgICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICAgICAgZGVwdGhzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2VJZk5lZWRlZDogZnVuY3Rpb24ocGFyYW0sIGNvbW1vbikge1xuICAgICAgbGV0IG9iaiA9IHBhcmFtIHx8IGNvbW1vbjtcblxuICAgICAgaWYgKHBhcmFtICYmIGNvbW1vbiAmJiBwYXJhbSAhPT0gY29tbW9uKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9XG4gICAgICAgICAgY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXVxuICAgICAgICAgICAgPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKVxuICAgICAgICAgICAgOiBvcHRpb25zLmRlcHRocztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHRocyA9IFtjb250ZXh0XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWluKGNvbnRleHQgLyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJycgK1xuICAgICAgICB0ZW1wbGF0ZVNwZWMubWFpbihcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtYWluID0gZXhlY3V0ZURlY29yYXRvcnMoXG4gICAgICB0ZW1wbGF0ZVNwZWMubWFpbixcbiAgICAgIG1haW4sXG4gICAgICBjb250YWluZXIsXG4gICAgICBvcHRpb25zLmRlcHRocyB8fCBbXSxcbiAgICAgIGRhdGEsXG4gICAgICBibG9ja1BhcmFtc1xuICAgICk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwpIHtcbiAgICAgIGxldCBtZXJnZWRIZWxwZXJzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuaGVscGVycywgb3B0aW9ucy5oZWxwZXJzKTtcbiAgICAgIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKTtcbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gbWVyZ2VkSGVscGVycztcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIC8vIFVzZSBtZXJnZUlmTmVlZGVkIGhlcmUgdG8gcHJldmVudCBjb21waWxpbmcgZ2xvYmFsIHBhcnRpYWxzIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZUlmTmVlZGVkKFxuICAgICAgICAgIG9wdGlvbnMucGFydGlhbHMsXG4gICAgICAgICAgZW52LnBhcnRpYWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwgfHwgdGVtcGxhdGVTcGVjLnVzZURlY29yYXRvcnMpIHtcbiAgICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBVdGlscy5leHRlbmQoXG4gICAgICAgICAge30sXG4gICAgICAgICAgZW52LmRlY29yYXRvcnMsXG4gICAgICAgICAgb3B0aW9ucy5kZWNvcmF0b3JzXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IHt9O1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChvcHRpb25zKTtcblxuICAgICAgbGV0IGtlZXBIZWxwZXJJbkhlbHBlcnMgPVxuICAgICAgICBvcHRpb25zLmFsbG93Q2FsbHNUb0hlbHBlck1pc3NpbmcgfHxcbiAgICAgICAgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3O1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnaGVscGVyTWlzc2luZycsIGtlZXBIZWxwZXJJbkhlbHBlcnMpO1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnYmxvY2tIZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wgPSBvcHRpb25zLnByb3RvQWNjZXNzQ29udHJvbDsgLy8gaW50ZXJuYWwgb3B0aW9uXG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IG9wdGlvbnMuaG9va3M7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oXG4gICAgICBjb250YWluZXIsXG4gICAgICBpLFxuICAgICAgdGVtcGxhdGVTcGVjW2ldLFxuICAgICAgZGF0YSxcbiAgICAgIDAsXG4gICAgICBibG9ja1BhcmFtcyxcbiAgICAgIGRlcHRoc1xuICAgICk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShcbiAgY29udGFpbmVyLFxuICBpLFxuICBmbixcbiAgZGF0YSxcbiAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgYmxvY2tQYXJhbXMsXG4gIGRlcHRoc1xuKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKFxuICAgICAgZGVwdGhzICYmXG4gICAgICBjb250ZXh0ICE9IGRlcHRoc1swXSAmJlxuICAgICAgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKVxuICAgICkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oXG4gICAgICBjb250YWluZXIsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGFpbmVyLmhlbHBlcnMsXG4gICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zICYmIFtvcHRpb25zLmJsb2NrUGFyYW1zXS5jb25jYXQoYmxvY2tQYXJhbXMpLFxuICAgICAgY3VycmVudERlcHRoc1xuICAgICk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBBUEksIHRoZXJlZm9yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHNob3VsZCBub3QgYmUgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKFxuICAgICAgY29udGV4dCxcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgICkge1xuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhKGNvbnRleHQsIGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8ICEoJ3Jvb3QnIGluIGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGEgPyBjcmVhdGVGcmFtZShkYXRhKSA6IHt9O1xuICAgIGRhdGEucm9vdCA9IGNvbnRleHQ7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpIHtcbiAgaWYgKGZuLmRlY29yYXRvcikge1xuICAgIGxldCBwcm9wcyA9IHt9O1xuICAgIHByb2cgPSBmbi5kZWNvcmF0b3IoXG4gICAgICBwcm9nLFxuICAgICAgcHJvcHMsXG4gICAgICBjb250YWluZXIsXG4gICAgICBkZXB0aHMgJiYgZGVwdGhzWzBdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGhlbHBlck5hbWUgPT4ge1xuICAgIGxldCBoZWxwZXIgPSBtZXJnZWRIZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV0gPSBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzc0xvb2t1cFByb3BlcnR5T3B0aW9uKGhlbHBlciwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gd3JhcEhlbHBlcihoZWxwZXIsIG9wdGlvbnMgPT4ge1xuICAgIHJldHVybiBVdGlscy5leHRlbmQoeyBsb29rdXBQcm9wZXJ0eSB9LCBvcHRpb25zKTtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\nvar log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n var n = +x;\n return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getAsyncIterator = require('../internals/get-async-iterator');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar toArray = require('../internals/async-iterator-iteration').toArray;\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar arrayIterator = uncurryThis(getBuiltInPrototypeMethod('Array', 'values'));\nvar arrayIteratorNext = uncurryThis(arrayIterator([]).next);\n\nvar safeArrayIterator = function () {\n return new SafeArrayIterator(this);\n};\n\nvar SafeArrayIterator = function (O) {\n this.iterator = arrayIterator(O);\n};\n\nSafeArrayIterator.prototype.next = function () {\n return arrayIteratorNext(this.iterator);\n};\n\n// `Array.fromAsync` method implementation\n// https://github.com/tc39/proposal-array-from-async\nmodule.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n var O = toObject(asyncItems);\n if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);\n var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);\n var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator;\n var A = isConstructor(C) ? new C() : [];\n var iterator = usingAsyncIterator\n ? getAsyncIterator(O, usingAsyncIterator)\n : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator)));\n resolve(toArray(iterator, mapfn, A));\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n var n = x >>> 0;\n return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;\n }\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return -1;\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n var list = $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSameTypeAndList(this, list);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar charAt = uncurryThis(''.charAt);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {\n try {\n var target = new Uint8Array();\n target.toBase64(null);\n } catch (error) {\n return true;\n }\n}();\n\n// `Uint8Array.prototype.toBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toBase64: function toBase64(/* options */) {\n var array = anUint8Array(this);\n var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var omitPadding = !!options && !!options.omitPadding;\n notDetached(this.buffer);\n\n var result = '';\n var i = 0;\n var length = array.length;\n var triplet;\n\n var at = function (shift) {\n return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n };\n\n for (; i + 2 < length; i += 3) {\n triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n result += at(3) + at(2) + at(1) + at(0);\n }\n if (i + 2 === length) {\n triplet = (array[i] << 16) + (array[i + 1] << 8);\n result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');\n } else if (i + 1 === length) {\n triplet = array[i] << 16;\n result += at(3) + at(2) + (omitPadding ? '' : '==');\n }\n\n return result;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\nvar $ = require('../internals/export');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\n\n// `Array.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-array.prototype.toreversed\n$({ target: 'Array', proto: true }, {\n toReversed: function toReversed() {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var A = new $Array(len);\n var k = 0;\n for (; k < len; k++) createProperty(A, k, O[len - k - 1]);\n return A;\n }\n});\n\naddToUnscopables('toReversed');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.1.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar pow = Math.pow;\n\nvar EXP_MASK16 = 31; // 2 ** 5 - 1\nvar SIGNIFICAND_MASK16 = 1023; // 2 ** 10 - 1\nvar MIN_SUBNORMAL16 = pow(2, -24); // 2 ** -10 * 2 ** -14\nvar SIGNIFICAND_DENOM16 = 0.0009765625; // 2 ** -10\n\nvar unpackFloat16 = function (bytes) {\n var sign = bytes >>> 15;\n var exponent = bytes >>> 10 & EXP_MASK16;\n var significand = bytes & SIGNIFICAND_MASK16;\n if (exponent === EXP_MASK16) return significand === 0 ? (sign === 0 ? Infinity : -Infinity) : NaN;\n if (exponent === 0) return significand * (sign === 0 ? MIN_SUBNORMAL16 : -MIN_SUBNORMAL16);\n return pow(2, exponent - 15) * (sign === 0 ? 1 + significand * SIGNIFICAND_DENOM16 : -1 - significand * SIGNIFICAND_DENOM16);\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint16 = uncurryThis(DataView.prototype.getUint16);\n\n// `DataView.prototype.getFloat16` method\n// https://tc39.es/ecma262/#sec-dataview.prototype.getfloat16\n$({ target: 'DataView', proto: true }, {\n getFloat16: function getFloat16(byteOffset /* , littleEndian */) {\n return unpackFloat16(getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nPromiseWrapper = path.Promise;\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlast\n$({ target: 'Array', proto: true }, {\n findLast: function findLast(callbackfn /* , that = undefined */) {\n return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLast');\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar log2 = require('../internals/math-log2');\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: log2\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar $RangeError = RangeError;\n\n// Firefox bug\nvar INCORRECT_EXCEPTION_ON_COERCION_FAIL = (function () {\n try {\n // eslint-disable-next-line es/no-array-prototype-with, no-throw-literal -- needed for testing\n []['with']({ valueOf: function () { throw 4; } }, null);\n } catch (error) {\n return error !== 4;\n }\n})();\n\n// `Array.prototype.with` method\n// https://tc39.es/ecma262/#sec-array.prototype.with\n$({ target: 'Array', proto: true, forced: INCORRECT_EXCEPTION_ON_COERCION_FAIL }, {\n 'with': function (index, value) {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new $Array(len);\n var k = 0;\n for (; k < len; k++) createProperty(A, k, k === actualIndex ? value : O[k]);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice && end === undefined) {\n return nativeArrayBufferSlice(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new ArrayBuffer(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n setUint8(viewTarget, index++, getUint8(viewSource, first++));\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = globalThis.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"images/ui-icons_444444_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"images/ui-icons_555555_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"images/ui-icons_ffffff_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"images/ui-icons_777620_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"images/ui-icons_cc0000_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"images/ui-icons_777777_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*!\n * jQuery UI CSS Framework 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n *\n * https://api.jqueryui.com/category/theming/\n *\n * To view and modify this theme, visit https://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=%22alpha(opacity%3D30)%22&opacityFilterOverlay=%22alpha(opacity%3D30)%22&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6\n */\n\n\n/* Component containers\n----------------------------------*/\n.ui-widget {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget .ui-widget {\n\tfont-size: 1em;\n}\n.ui-widget input,\n.ui-widget select,\n.ui-widget textarea,\n.ui-widget button {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget.ui-widget-content {\n\tborder: 1px solid #c5c5c5;\n}\n.ui-widget-content {\n\tborder: 1px solid #dddddd;\n\tbackground: #ffffff;\n\tcolor: #333333;\n}\n.ui-widget-content a {\n\tcolor: #333333;\n}\n.ui-widget-header {\n\tborder: 1px solid #dddddd;\n\tbackground: #e9e9e9;\n\tcolor: #333333;\n\tfont-weight: bold;\n}\n.ui-widget-header a {\n\tcolor: #333333;\n}\n\n/* Interaction states\n----------------------------------*/\n.ui-state-default,\n.ui-widget-content .ui-state-default,\n.ui-widget-header .ui-state-default,\n.ui-button,\n\n/* We use html here because we need a greater specificity to make sure disabled\nworks properly when clicked or hovered */\nhtml .ui-button.ui-state-disabled:hover,\nhtml .ui-button.ui-state-disabled:active {\n\tborder: 1px solid #c5c5c5;\n\tbackground: #f6f6f6;\n\tfont-weight: normal;\n\tcolor: #454545;\n}\n.ui-state-default a,\n.ui-state-default a:link,\n.ui-state-default a:visited,\na.ui-button,\na:link.ui-button,\na:visited.ui-button,\n.ui-button {\n\tcolor: #454545;\n\ttext-decoration: none;\n}\n.ui-state-hover,\n.ui-widget-content .ui-state-hover,\n.ui-widget-header .ui-state-hover,\n.ui-state-focus,\n.ui-widget-content .ui-state-focus,\n.ui-widget-header .ui-state-focus,\n.ui-button:hover,\n.ui-button:focus {\n\tborder: 1px solid #cccccc;\n\tbackground: #ededed;\n\tfont-weight: normal;\n\tcolor: #2b2b2b;\n}\n.ui-state-hover a,\n.ui-state-hover a:hover,\n.ui-state-hover a:link,\n.ui-state-hover a:visited,\n.ui-state-focus a,\n.ui-state-focus a:hover,\n.ui-state-focus a:link,\n.ui-state-focus a:visited,\na.ui-button:hover,\na.ui-button:focus {\n\tcolor: #2b2b2b;\n\ttext-decoration: none;\n}\n\n.ui-visual-focus {\n\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\n}\n.ui-state-active,\n.ui-widget-content .ui-state-active,\n.ui-widget-header .ui-state-active,\na.ui-button:active,\n.ui-button:active,\n.ui-button.ui-state-active:hover {\n\tborder: 1px solid #003eff;\n\tbackground: #007fff;\n\tfont-weight: normal;\n\tcolor: #ffffff;\n}\n.ui-icon-background,\n.ui-state-active .ui-icon-background {\n\tborder: #003eff;\n\tbackground-color: #ffffff;\n}\n.ui-state-active a,\n.ui-state-active a:link,\n.ui-state-active a:visited {\n\tcolor: #ffffff;\n\ttext-decoration: none;\n}\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-highlight,\n.ui-widget-content .ui-state-highlight,\n.ui-widget-header .ui-state-highlight {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n\tcolor: #777620;\n}\n.ui-state-checked {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n}\n.ui-state-highlight a,\n.ui-widget-content .ui-state-highlight a,\n.ui-widget-header .ui-state-highlight a {\n\tcolor: #777620;\n}\n.ui-state-error,\n.ui-widget-content .ui-state-error,\n.ui-widget-header .ui-state-error {\n\tborder: 1px solid #f1a899;\n\tbackground: #fddfdf;\n\tcolor: #5f3f3f;\n}\n.ui-state-error a,\n.ui-widget-content .ui-state-error a,\n.ui-widget-header .ui-state-error a {\n\tcolor: #5f3f3f;\n}\n.ui-state-error-text,\n.ui-widget-content .ui-state-error-text,\n.ui-widget-header .ui-state-error-text {\n\tcolor: #5f3f3f;\n}\n.ui-priority-primary,\n.ui-widget-content .ui-priority-primary,\n.ui-widget-header .ui-priority-primary {\n\tfont-weight: bold;\n}\n.ui-priority-secondary,\n.ui-widget-content .ui-priority-secondary,\n.ui-widget-header .ui-priority-secondary {\n\topacity: .7;\n\t-ms-filter: \"alpha(opacity=70)\"; /* support: IE8 */\n\tfont-weight: normal;\n}\n.ui-state-disabled,\n.ui-widget-content .ui-state-disabled,\n.ui-widget-header .ui-state-disabled {\n\topacity: .35;\n\t-ms-filter: \"alpha(opacity=35)\"; /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-state-disabled .ui-icon {\n\t-ms-filter: \"alpha(opacity=35)\"; /* support: IE8 - See #6059 */\n}\n\n/* Icons\n----------------------------------*/\n\n/* states and images */\n.ui-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n.ui-icon,\n.ui-widget-content .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n}\n.ui-widget-header .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n}\n.ui-state-hover .ui-icon,\n.ui-state-focus .ui-icon,\n.ui-button:hover .ui-icon,\n.ui-button:focus .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n.ui-state-active .ui-icon,\n.ui-button:active .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\n}\n.ui-state-highlight .ui-icon,\n.ui-button .ui-state-highlight.ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___});\n}\n.ui-state-error .ui-icon,\n.ui-state-error-text .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_4___});\n}\n.ui-button .ui-icon {\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_5___});\n}\n\n/* positioning */\n/* Three classes needed to override \\`.ui-button:hover .ui-icon\\` */\n.ui-icon-blank.ui-icon-blank.ui-icon-blank {\n\tbackground-image: none;\n}\n.ui-icon-caret-1-n { background-position: 0 0; }\n.ui-icon-caret-1-ne { background-position: -16px 0; }\n.ui-icon-caret-1-e { background-position: -32px 0; }\n.ui-icon-caret-1-se { background-position: -48px 0; }\n.ui-icon-caret-1-s { background-position: -65px 0; }\n.ui-icon-caret-1-sw { background-position: -80px 0; }\n.ui-icon-caret-1-w { background-position: -96px 0; }\n.ui-icon-caret-1-nw { background-position: -112px 0; }\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\n.ui-icon-arrow-4 { background-position: 0 -80px; }\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\n.ui-icon-extlink { background-position: -32px -80px; }\n.ui-icon-newwin { background-position: -48px -80px; }\n.ui-icon-refresh { background-position: -64px -80px; }\n.ui-icon-shuffle { background-position: -80px -80px; }\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\n.ui-icon-folder-open { background-position: -16px -96px; }\n.ui-icon-document { background-position: -32px -96px; }\n.ui-icon-document-b { background-position: -48px -96px; }\n.ui-icon-note { background-position: -64px -96px; }\n.ui-icon-mail-closed { background-position: -80px -96px; }\n.ui-icon-mail-open { background-position: -96px -96px; }\n.ui-icon-suitcase { background-position: -112px -96px; }\n.ui-icon-comment { background-position: -128px -96px; }\n.ui-icon-person { background-position: -144px -96px; }\n.ui-icon-print { background-position: -160px -96px; }\n.ui-icon-trash { background-position: -176px -96px; }\n.ui-icon-locked { background-position: -192px -96px; }\n.ui-icon-unlocked { background-position: -208px -96px; }\n.ui-icon-bookmark { background-position: -224px -96px; }\n.ui-icon-tag { background-position: -240px -96px; }\n.ui-icon-home { background-position: 0 -112px; }\n.ui-icon-flag { background-position: -16px -112px; }\n.ui-icon-calendar { background-position: -32px -112px; }\n.ui-icon-cart { background-position: -48px -112px; }\n.ui-icon-pencil { background-position: -64px -112px; }\n.ui-icon-clock { background-position: -80px -112px; }\n.ui-icon-disk { background-position: -96px -112px; }\n.ui-icon-calculator { background-position: -112px -112px; }\n.ui-icon-zoomin { background-position: -128px -112px; }\n.ui-icon-zoomout { background-position: -144px -112px; }\n.ui-icon-search { background-position: -160px -112px; }\n.ui-icon-wrench { background-position: -176px -112px; }\n.ui-icon-gear { background-position: -192px -112px; }\n.ui-icon-heart { background-position: -208px -112px; }\n.ui-icon-star { background-position: -224px -112px; }\n.ui-icon-link { background-position: -240px -112px; }\n.ui-icon-cancel { background-position: 0 -128px; }\n.ui-icon-plus { background-position: -16px -128px; }\n.ui-icon-plusthick { background-position: -32px -128px; }\n.ui-icon-minus { background-position: -48px -128px; }\n.ui-icon-minusthick { background-position: -64px -128px; }\n.ui-icon-close { background-position: -80px -128px; }\n.ui-icon-closethick { background-position: -96px -128px; }\n.ui-icon-key { background-position: -112px -128px; }\n.ui-icon-lightbulb { background-position: -128px -128px; }\n.ui-icon-scissors { background-position: -144px -128px; }\n.ui-icon-clipboard { background-position: -160px -128px; }\n.ui-icon-copy { background-position: -176px -128px; }\n.ui-icon-contact { background-position: -192px -128px; }\n.ui-icon-image { background-position: -208px -128px; }\n.ui-icon-video { background-position: -224px -128px; }\n.ui-icon-script { background-position: -240px -128px; }\n.ui-icon-alert { background-position: 0 -144px; }\n.ui-icon-info { background-position: -16px -144px; }\n.ui-icon-notice { background-position: -32px -144px; }\n.ui-icon-help { background-position: -48px -144px; }\n.ui-icon-check { background-position: -64px -144px; }\n.ui-icon-bullet { background-position: -80px -144px; }\n.ui-icon-radio-on { background-position: -96px -144px; }\n.ui-icon-radio-off { background-position: -112px -144px; }\n.ui-icon-pin-w { background-position: -128px -144px; }\n.ui-icon-pin-s { background-position: -144px -144px; }\n.ui-icon-play { background-position: 0 -160px; }\n.ui-icon-pause { background-position: -16px -160px; }\n.ui-icon-seek-next { background-position: -32px -160px; }\n.ui-icon-seek-prev { background-position: -48px -160px; }\n.ui-icon-seek-end { background-position: -64px -160px; }\n.ui-icon-seek-start { background-position: -80px -160px; }\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\n.ui-icon-seek-first { background-position: -80px -160px; }\n.ui-icon-stop { background-position: -96px -160px; }\n.ui-icon-eject { background-position: -112px -160px; }\n.ui-icon-volume-off { background-position: -128px -160px; }\n.ui-icon-volume-on { background-position: -144px -160px; }\n.ui-icon-power { background-position: 0 -176px; }\n.ui-icon-signal-diag { background-position: -16px -176px; }\n.ui-icon-signal { background-position: -32px -176px; }\n.ui-icon-battery-0 { background-position: -48px -176px; }\n.ui-icon-battery-1 { background-position: -64px -176px; }\n.ui-icon-battery-2 { background-position: -80px -176px; }\n.ui-icon-battery-3 { background-position: -96px -176px; }\n.ui-icon-circle-plus { background-position: 0 -192px; }\n.ui-icon-circle-minus { background-position: -16px -192px; }\n.ui-icon-circle-close { background-position: -32px -192px; }\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\n.ui-icon-circle-check { background-position: -208px -192px; }\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\n\n\n/* Misc visuals\n----------------------------------*/\n\n/* Corner radius */\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-left,\n.ui-corner-tl {\n\tborder-top-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-right,\n.ui-corner-tr {\n\tborder-top-right-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-left,\n.ui-corner-bl {\n\tborder-bottom-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-right,\n.ui-corner-br {\n\tborder-bottom-right-radius: 3px;\n}\n\n/* Overlays */\n.ui-widget-overlay {\n\tbackground: #aaaaaa;\n\topacity: .003;\n\t-ms-filter: \"alpha(opacity=.3)\"; /* support: IE8 */\n}\n.ui-widget-shadow {\n\t-webkit-box-shadow: 0px 0px 5px #666666;\n\tbox-shadow: 0px 0px 5px #666666;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/jquery-ui-dist/jquery-ui.theme.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*!\\n * jQuery UI CSS Framework 1.13.3\\n * https://jqueryui.com\\n *\\n * Copyright OpenJS Foundation and other contributors\\n * Released under the MIT license.\\n * https://jquery.org/license\\n *\\n * https://api.jqueryui.com/category/theming/\\n *\\n * To view and modify this theme, visit https://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=%22alpha(opacity%3D30)%22&opacityFilterOverlay=%22alpha(opacity%3D30)%22&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6\\n */\\n\\n\\n/* Component containers\\n----------------------------------*/\\n.ui-widget {\\n\\tfont-family: Arial,Helvetica,sans-serif;\\n\\tfont-size: 1em;\\n}\\n.ui-widget .ui-widget {\\n\\tfont-size: 1em;\\n}\\n.ui-widget input,\\n.ui-widget select,\\n.ui-widget textarea,\\n.ui-widget button {\\n\\tfont-family: Arial,Helvetica,sans-serif;\\n\\tfont-size: 1em;\\n}\\n.ui-widget.ui-widget-content {\\n\\tborder: 1px solid #c5c5c5;\\n}\\n.ui-widget-content {\\n\\tborder: 1px solid #dddddd;\\n\\tbackground: #ffffff;\\n\\tcolor: #333333;\\n}\\n.ui-widget-content a {\\n\\tcolor: #333333;\\n}\\n.ui-widget-header {\\n\\tborder: 1px solid #dddddd;\\n\\tbackground: #e9e9e9;\\n\\tcolor: #333333;\\n\\tfont-weight: bold;\\n}\\n.ui-widget-header a {\\n\\tcolor: #333333;\\n}\\n\\n/* Interaction states\\n----------------------------------*/\\n.ui-state-default,\\n.ui-widget-content .ui-state-default,\\n.ui-widget-header .ui-state-default,\\n.ui-button,\\n\\n/* We use html here because we need a greater specificity to make sure disabled\\nworks properly when clicked or hovered */\\nhtml .ui-button.ui-state-disabled:hover,\\nhtml .ui-button.ui-state-disabled:active {\\n\\tborder: 1px solid #c5c5c5;\\n\\tbackground: #f6f6f6;\\n\\tfont-weight: normal;\\n\\tcolor: #454545;\\n}\\n.ui-state-default a,\\n.ui-state-default a:link,\\n.ui-state-default a:visited,\\na.ui-button,\\na:link.ui-button,\\na:visited.ui-button,\\n.ui-button {\\n\\tcolor: #454545;\\n\\ttext-decoration: none;\\n}\\n.ui-state-hover,\\n.ui-widget-content .ui-state-hover,\\n.ui-widget-header .ui-state-hover,\\n.ui-state-focus,\\n.ui-widget-content .ui-state-focus,\\n.ui-widget-header .ui-state-focus,\\n.ui-button:hover,\\n.ui-button:focus {\\n\\tborder: 1px solid #cccccc;\\n\\tbackground: #ededed;\\n\\tfont-weight: normal;\\n\\tcolor: #2b2b2b;\\n}\\n.ui-state-hover a,\\n.ui-state-hover a:hover,\\n.ui-state-hover a:link,\\n.ui-state-hover a:visited,\\n.ui-state-focus a,\\n.ui-state-focus a:hover,\\n.ui-state-focus a:link,\\n.ui-state-focus a:visited,\\na.ui-button:hover,\\na.ui-button:focus {\\n\\tcolor: #2b2b2b;\\n\\ttext-decoration: none;\\n}\\n\\n.ui-visual-focus {\\n\\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\\n}\\n.ui-state-active,\\n.ui-widget-content .ui-state-active,\\n.ui-widget-header .ui-state-active,\\na.ui-button:active,\\n.ui-button:active,\\n.ui-button.ui-state-active:hover {\\n\\tborder: 1px solid #003eff;\\n\\tbackground: #007fff;\\n\\tfont-weight: normal;\\n\\tcolor: #ffffff;\\n}\\n.ui-icon-background,\\n.ui-state-active .ui-icon-background {\\n\\tborder: #003eff;\\n\\tbackground-color: #ffffff;\\n}\\n.ui-state-active a,\\n.ui-state-active a:link,\\n.ui-state-active a:visited {\\n\\tcolor: #ffffff;\\n\\ttext-decoration: none;\\n}\\n\\n/* Interaction Cues\\n----------------------------------*/\\n.ui-state-highlight,\\n.ui-widget-content .ui-state-highlight,\\n.ui-widget-header .ui-state-highlight {\\n\\tborder: 1px solid #dad55e;\\n\\tbackground: #fffa90;\\n\\tcolor: #777620;\\n}\\n.ui-state-checked {\\n\\tborder: 1px solid #dad55e;\\n\\tbackground: #fffa90;\\n}\\n.ui-state-highlight a,\\n.ui-widget-content .ui-state-highlight a,\\n.ui-widget-header .ui-state-highlight a {\\n\\tcolor: #777620;\\n}\\n.ui-state-error,\\n.ui-widget-content .ui-state-error,\\n.ui-widget-header .ui-state-error {\\n\\tborder: 1px solid #f1a899;\\n\\tbackground: #fddfdf;\\n\\tcolor: #5f3f3f;\\n}\\n.ui-state-error a,\\n.ui-widget-content .ui-state-error a,\\n.ui-widget-header .ui-state-error a {\\n\\tcolor: #5f3f3f;\\n}\\n.ui-state-error-text,\\n.ui-widget-content .ui-state-error-text,\\n.ui-widget-header .ui-state-error-text {\\n\\tcolor: #5f3f3f;\\n}\\n.ui-priority-primary,\\n.ui-widget-content .ui-priority-primary,\\n.ui-widget-header .ui-priority-primary {\\n\\tfont-weight: bold;\\n}\\n.ui-priority-secondary,\\n.ui-widget-content .ui-priority-secondary,\\n.ui-widget-header .ui-priority-secondary {\\n\\topacity: .7;\\n\\t-ms-filter: \\\"alpha(opacity=70)\\\"; /* support: IE8 */\\n\\tfont-weight: normal;\\n}\\n.ui-state-disabled,\\n.ui-widget-content .ui-state-disabled,\\n.ui-widget-header .ui-state-disabled {\\n\\topacity: .35;\\n\\t-ms-filter: \\\"alpha(opacity=35)\\\"; /* support: IE8 */\\n\\tbackground-image: none;\\n}\\n.ui-state-disabled .ui-icon {\\n\\t-ms-filter: \\\"alpha(opacity=35)\\\"; /* support: IE8 - See #6059 */\\n}\\n\\n/* Icons\\n----------------------------------*/\\n\\n/* states and images */\\n.ui-icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n}\\n.ui-icon,\\n.ui-widget-content .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_444444_256x240.png\\\");\\n}\\n.ui-widget-header .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_444444_256x240.png\\\");\\n}\\n.ui-state-hover .ui-icon,\\n.ui-state-focus .ui-icon,\\n.ui-button:hover .ui-icon,\\n.ui-button:focus .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_555555_256x240.png\\\");\\n}\\n.ui-state-active .ui-icon,\\n.ui-button:active .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_ffffff_256x240.png\\\");\\n}\\n.ui-state-highlight .ui-icon,\\n.ui-button .ui-state-highlight.ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_777620_256x240.png\\\");\\n}\\n.ui-state-error .ui-icon,\\n.ui-state-error-text .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_cc0000_256x240.png\\\");\\n}\\n.ui-button .ui-icon {\\n\\tbackground-image: url(\\\"images/ui-icons_777777_256x240.png\\\");\\n}\\n\\n/* positioning */\\n/* Three classes needed to override `.ui-button:hover .ui-icon` */\\n.ui-icon-blank.ui-icon-blank.ui-icon-blank {\\n\\tbackground-image: none;\\n}\\n.ui-icon-caret-1-n { background-position: 0 0; }\\n.ui-icon-caret-1-ne { background-position: -16px 0; }\\n.ui-icon-caret-1-e { background-position: -32px 0; }\\n.ui-icon-caret-1-se { background-position: -48px 0; }\\n.ui-icon-caret-1-s { background-position: -65px 0; }\\n.ui-icon-caret-1-sw { background-position: -80px 0; }\\n.ui-icon-caret-1-w { background-position: -96px 0; }\\n.ui-icon-caret-1-nw { background-position: -112px 0; }\\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\\n.ui-icon-arrow-4 { background-position: 0 -80px; }\\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\\n.ui-icon-extlink { background-position: -32px -80px; }\\n.ui-icon-newwin { background-position: -48px -80px; }\\n.ui-icon-refresh { background-position: -64px -80px; }\\n.ui-icon-shuffle { background-position: -80px -80px; }\\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\\n.ui-icon-folder-open { background-position: -16px -96px; }\\n.ui-icon-document { background-position: -32px -96px; }\\n.ui-icon-document-b { background-position: -48px -96px; }\\n.ui-icon-note { background-position: -64px -96px; }\\n.ui-icon-mail-closed { background-position: -80px -96px; }\\n.ui-icon-mail-open { background-position: -96px -96px; }\\n.ui-icon-suitcase { background-position: -112px -96px; }\\n.ui-icon-comment { background-position: -128px -96px; }\\n.ui-icon-person { background-position: -144px -96px; }\\n.ui-icon-print { background-position: -160px -96px; }\\n.ui-icon-trash { background-position: -176px -96px; }\\n.ui-icon-locked { background-position: -192px -96px; }\\n.ui-icon-unlocked { background-position: -208px -96px; }\\n.ui-icon-bookmark { background-position: -224px -96px; }\\n.ui-icon-tag { background-position: -240px -96px; }\\n.ui-icon-home { background-position: 0 -112px; }\\n.ui-icon-flag { background-position: -16px -112px; }\\n.ui-icon-calendar { background-position: -32px -112px; }\\n.ui-icon-cart { background-position: -48px -112px; }\\n.ui-icon-pencil { background-position: -64px -112px; }\\n.ui-icon-clock { background-position: -80px -112px; }\\n.ui-icon-disk { background-position: -96px -112px; }\\n.ui-icon-calculator { background-position: -112px -112px; }\\n.ui-icon-zoomin { background-position: -128px -112px; }\\n.ui-icon-zoomout { background-position: -144px -112px; }\\n.ui-icon-search { background-position: -160px -112px; }\\n.ui-icon-wrench { background-position: -176px -112px; }\\n.ui-icon-gear { background-position: -192px -112px; }\\n.ui-icon-heart { background-position: -208px -112px; }\\n.ui-icon-star { background-position: -224px -112px; }\\n.ui-icon-link { background-position: -240px -112px; }\\n.ui-icon-cancel { background-position: 0 -128px; }\\n.ui-icon-plus { background-position: -16px -128px; }\\n.ui-icon-plusthick { background-position: -32px -128px; }\\n.ui-icon-minus { background-position: -48px -128px; }\\n.ui-icon-minusthick { background-position: -64px -128px; }\\n.ui-icon-close { background-position: -80px -128px; }\\n.ui-icon-closethick { background-position: -96px -128px; }\\n.ui-icon-key { background-position: -112px -128px; }\\n.ui-icon-lightbulb { background-position: -128px -128px; }\\n.ui-icon-scissors { background-position: -144px -128px; }\\n.ui-icon-clipboard { background-position: -160px -128px; }\\n.ui-icon-copy { background-position: -176px -128px; }\\n.ui-icon-contact { background-position: -192px -128px; }\\n.ui-icon-image { background-position: -208px -128px; }\\n.ui-icon-video { background-position: -224px -128px; }\\n.ui-icon-script { background-position: -240px -128px; }\\n.ui-icon-alert { background-position: 0 -144px; }\\n.ui-icon-info { background-position: -16px -144px; }\\n.ui-icon-notice { background-position: -32px -144px; }\\n.ui-icon-help { background-position: -48px -144px; }\\n.ui-icon-check { background-position: -64px -144px; }\\n.ui-icon-bullet { background-position: -80px -144px; }\\n.ui-icon-radio-on { background-position: -96px -144px; }\\n.ui-icon-radio-off { background-position: -112px -144px; }\\n.ui-icon-pin-w { background-position: -128px -144px; }\\n.ui-icon-pin-s { background-position: -144px -144px; }\\n.ui-icon-play { background-position: 0 -160px; }\\n.ui-icon-pause { background-position: -16px -160px; }\\n.ui-icon-seek-next { background-position: -32px -160px; }\\n.ui-icon-seek-prev { background-position: -48px -160px; }\\n.ui-icon-seek-end { background-position: -64px -160px; }\\n.ui-icon-seek-start { background-position: -80px -160px; }\\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\\n.ui-icon-seek-first { background-position: -80px -160px; }\\n.ui-icon-stop { background-position: -96px -160px; }\\n.ui-icon-eject { background-position: -112px -160px; }\\n.ui-icon-volume-off { background-position: -128px -160px; }\\n.ui-icon-volume-on { background-position: -144px -160px; }\\n.ui-icon-power { background-position: 0 -176px; }\\n.ui-icon-signal-diag { background-position: -16px -176px; }\\n.ui-icon-signal { background-position: -32px -176px; }\\n.ui-icon-battery-0 { background-position: -48px -176px; }\\n.ui-icon-battery-1 { background-position: -64px -176px; }\\n.ui-icon-battery-2 { background-position: -80px -176px; }\\n.ui-icon-battery-3 { background-position: -96px -176px; }\\n.ui-icon-circle-plus { background-position: 0 -192px; }\\n.ui-icon-circle-minus { background-position: -16px -192px; }\\n.ui-icon-circle-close { background-position: -32px -192px; }\\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\\n.ui-icon-circle-check { background-position: -208px -192px; }\\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\\n\\n\\n/* Misc visuals\\n----------------------------------*/\\n\\n/* Corner radius */\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-left,\\n.ui-corner-tl {\\n\\tborder-top-left-radius: 3px;\\n}\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-right,\\n.ui-corner-tr {\\n\\tborder-top-right-radius: 3px;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-left,\\n.ui-corner-bl {\\n\\tborder-bottom-left-radius: 3px;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-right,\\n.ui-corner-br {\\n\\tborder-bottom-right-radius: 3px;\\n}\\n\\n/* Overlays */\\n.ui-widget-overlay {\\n\\tbackground: #aaaaaa;\\n\\topacity: .003;\\n\\t-ms-filter: \\\"alpha(opacity=.3)\\\"; /* support: IE8 */\\n}\\n.ui-widget-shadow {\\n\\t-webkit-box-shadow: 0px 0px 5px #666666;\\n\\tbox-shadow: 0px 0px 5px #666666;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlastindex\n$({ target: 'Array', proto: true }, {\n findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {\n return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLastIndex');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {\n some: function some(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = globalThis.self !== globalThis;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n if (DESCRIPTORS) {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self');\n // some engines have `self`, but with incorrect descriptor\n // https://github.com/denoland/deno/issues/15765\n if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n defineBuiltInAccessor(globalThis, 'self', {\n get: function self() {\n return globalThis;\n },\n set: function self(value) {\n if (this !== globalThis) throw new $TypeError('Illegal invocation');\n defineProperty(globalThis, 'self', {\n value: value,\n writable: true,\n configurable: true,\n enumerable: true\n });\n },\n configurable: true,\n enumerable: true\n });\n }\n } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n self: globalThis\n });\n} catch (error) { /* empty */ }\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/environment-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n symmetricDifference: symmetricDifference\n});\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar isArray = require('isarray');\nvar typedArrayBuffer = require('typed-array-buffer');\n\nvar isView = ArrayBuffer.isView || function isView(obj) {\n\ttry {\n\t\ttypedArrayBuffer(obj);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined';\nvar useFromArrayBuffer = useArrayBuffer && (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nmodule.exports = function toBuffer(data, encoding) {\n\tif (Buffer.isBuffer(data)) {\n\t\tif (data.constructor && !('isBuffer' in data)) {\n\t\t\t// probably a SlowBuffer\n\t\t\treturn Buffer.from(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\t// When Buffer is based on Uint8Array, we can just construct it from ArrayBuffer\n\t\tif (useFromArrayBuffer) {\n\t\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t\t/*\n\t\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t\t * We just go to Uint8Array case if this fails\n\t\t\t */\n\t\t\tif (res.byteLength === data.byteLength) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\t// Convert to Uint8Array bytes and then to Buffer\n\t\tvar uint8 = data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tvar result = Buffer.from(uint8);\n\n\t\t/*\n\t\t * Let's recheck that conversion succeeded\n\t\t * We have .length but not .byteLength when useFromArrayBuffer is false\n\t\t */\n\t\tif (result.length === data.byteLength) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tvar isArr = isArray(data);\n\tif (isArr) {\n\t\tfor (var i = 0; i < data.length; i += 1) {\n\t\t\tvar x = data[i];\n\t\t\tif (\n\t\t\t\ttypeof x !== 'number'\n\t\t\t\t|| x < 0\n\t\t\t\t|| x > 255\n\t\t\t\t|| ~~x !== x // NaN and integer check\n\t\t\t) {\n\t\t\t\tthrow new RangeError('Array items must be numbers in the range 0-255.');\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tisArr || (\n\t\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t\t)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(globalThis.Reflect, 'Reflect', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(globalThis.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: globalThis.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","'use strict';\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23;\nvar FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104\nvar FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126;\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE);\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar RangeError = globalThis.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar addGetter = function (it, key) {\n defineBuiltInAccessor(it, key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = globalThis[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw new RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw new RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return arrayFromConstructorAndList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = globalThis[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = globalThis[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar $fromBase64 = require('../internals/uint8-from-base64');\nvar anUint8Array = require('../internals/an-uint8-array');\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.setFromBase64 || !function () {\n var target = new Uint8Array([255, 255, 255, 255, 255]);\n try {\n target.setFromBase64('', null);\n return;\n } catch (error) { /* empty */ }\n // Webkit not throw an error on odd length string\n try {\n target.setFromBase64('a');\n return;\n } catch (error) { /* empty */ }\n try {\n target.setFromBase64('MjYyZg===');\n } catch (error) {\n return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;\n }\n}();\n\n// `Uint8Array.prototype.setFromBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n setFromBase64: function setFromBase64(string /* , options */) {\n anUint8Array(this);\n\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);\n\n return { read: result.read, written: result.written };\n }\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $AggregateError, that.stack, 1);\n if (arguments.length > 2) installErrorCause(that, arguments[2]);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineGetter__: function __defineGetter__(P, getter) {\n definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar fails = require('../internals/fails');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {\n return result.size === 0;\n});\n\nvar FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {\n // https://bugs.webkit.org/show_bug.cgi?id=288595\n var setLike = {\n size: 1,\n has: function () { return true; },\n keys: function () {\n var index = 0;\n return {\n next: function () {\n var done = index++ > 1;\n if (baseSet.has(1)) baseSet.clear();\n return { done: done, value: 2 };\n }\n };\n }\n };\n // eslint-disable-next-line es/no-set -- testing\n var baseSet = new Set([1, 2, 3, 4]);\n // eslint-disable-next-line es/no-set-prototype-difference -- testing\n return baseSet.difference(setLike).size !== 3;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n difference: difference\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://tc39.es/ecma262/#sec-array.prototype.at\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\n\nvar $TypeError = TypeError;\n\n// https://bugs.webkit.org/show_bug.cgi?id=291651\nvar FAILS_ON_INITIAL_UNDEFINED = fails(function () {\n // eslint-disable-next-line es/no-iterator-prototype-reduce, es/no-array-prototype-keys, array-callback-return -- required for testing\n [].keys().reduce(function () { /* empty */ }, undefined);\n});\n\nvar reduceWithoutClosingOnEarlyError = !FAILS_ON_INITIAL_UNDEFINED && iteratorHelperWithoutClosingOnEarlyError('reduce', $TypeError);\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFINED || reduceWithoutClosingOnEarlyError }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n try {\n aCallable(reducer);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n if (reduceWithoutClosingOnEarlyError) {\n return apply(reduceWithoutClosingOnEarlyError, this, noInitial ? [reducer] : [reducer, accumulator]);\n }\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimEnd, trimRight }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\nmodule.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorCloseAll = require('../internals/iterator-close-all');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar NORMAL = 'normal';\nvar THROW = 'throw';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n if (state.done) return createIterResultObject(undefined, true);\n try {\n var result = state.nextHandler();\n return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, NORMAL);\n } catch (error) {\n return iteratorClose(iterator, THROW, error);\n }\n if (state.openIters) try {\n iteratorCloseAll(state.openIters, NORMAL);\n } catch (error) {\n return iteratorClose(iterator, THROW, error);\n }\n if (iterator) iteratorClose(iterator, NORMAL);\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError);\n\n// `Iterator.prototype.find` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.find\n$({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, {\n find: function find(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar createProperty = require('../internals/create-property');\nvar setInternalState = require('../internals/internal-state').set;\n\nvar $SyntaxError = SyntaxError;\nvar parse = getBuiltIn('JSON', 'parse');\nvar create = getBuiltIn('Object', 'create');\nvar freeze = getBuiltIn('Object', 'freeze');\nvar at = uncurryThis(''.charAt);\n\nvar ERROR_MESSAGE = 'Unacceptable as raw JSON';\n\nvar isWhitespace = function (it) {\n return it === ' ' || it === '\\t' || it === '\\n' || it === '\\r';\n};\n\n// `JSON.rawJSON` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.rawjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n rawJSON: function rawJSON(text) {\n var jsonString = toString(text);\n if (jsonString === '' || isWhitespace(at(jsonString, 0)) || isWhitespace(at(jsonString, jsonString.length - 1))) {\n throw new $SyntaxError(ERROR_MESSAGE);\n }\n var parsed = parse(jsonString);\n if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);\n var obj = create(null);\n setInternalState(obj, { type: 'RawJSON' });\n createProperty(obj, 'rawJSON', jsonString);\n return FREEZING ? freeze(obj) : obj;\n }\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar numberToString = uncurryThis(1.1.toString);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toHex || !(function () {\n try {\n var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n return target.toHex() === 'ffffffffffffffff';\n } catch (error) {\n return false;\n }\n})();\n\n// `Uint8Array.prototype.toHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toHex: function toHex() {\n anUint8Array(this);\n notDetached(this.buffer);\n var result = '';\n for (var i = 0, length = this.length; i < length; i++) {\n var hex = numberToString(this[i], 16);\n result += hex.length === 1 ? '0' + hex : hex;\n }\n return result;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, method, argument, reject) {\n try {\n var returnMethod = getMethod(iterator, 'return');\n if (returnMethod) {\n return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function () {\n method(argument);\n }, function (error) {\n reject(error);\n });\n }\n } catch (error2) {\n return reject(error2);\n } method(argument);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n\nvar md5 = require('create-hash/md5');\nvar RIPEMD160 = require('ripemd160');\nvar sha = require('sha.js');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar toBuffer = require('./to-buffer');\n\nvar ZEROS = Buffer.alloc(128);\nvar sizes = {\n\t__proto__: null,\n\tmd5: 16,\n\tsha1: 20,\n\tsha224: 28,\n\tsha256: 32,\n\tsha384: 48,\n\tsha512: 64,\n\t'sha512-256': 32,\n\tripemd160: 20,\n\trmd160: 20\n};\n\nvar mapping = {\n\t__proto__: null,\n\t'sha-1': 'sha1',\n\t'sha-224': 'sha224',\n\t'sha-256': 'sha256',\n\t'sha-384': 'sha384',\n\t'sha-512': 'sha512',\n\t'ripemd-160': 'ripemd160'\n};\n\nfunction rmd160Func(data) {\n\treturn new RIPEMD160().update(data).digest();\n}\n\nfunction getDigest(alg) {\n\tfunction shaFunc(data) {\n\t\treturn sha(alg).update(data).digest();\n\t}\n\n\tif (alg === 'rmd160' || alg === 'ripemd160') {\n\t\treturn rmd160Func;\n\t}\n\tif (alg === 'md5') {\n\t\treturn md5;\n\t}\n\treturn shaFunc;\n}\n\nfunction Hmac(alg, key, saltLen) {\n\tvar hash = getDigest(alg);\n\tvar blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n\n\tif (key.length > blocksize) {\n\t\tkey = hash(key);\n\t} else if (key.length < blocksize) {\n\t\tkey = Buffer.concat([key, ZEROS], blocksize);\n\t}\n\n\tvar ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tvar opad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tfor (var i = 0; i < blocksize; i++) {\n\t\tipad[i] = key[i] ^ 0x36;\n\t\topad[i] = key[i] ^ 0x5C;\n\t}\n\n\tvar ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);\n\tipad.copy(ipad1, 0, 0, blocksize);\n\tthis.ipad1 = ipad1;\n\tthis.ipad2 = ipad;\n\tthis.opad = opad;\n\tthis.alg = alg;\n\tthis.blocksize = blocksize;\n\tthis.hash = hash;\n\tthis.size = sizes[alg];\n}\n\nHmac.prototype.run = function (data, ipad) {\n\tdata.copy(ipad, this.blocksize);\n\tvar h = this.hash(ipad);\n\th.copy(this.opad, this.blocksize);\n\treturn this.hash(this.opad);\n};\n\nfunction pbkdf2(password, salt, iterations, keylen, digest) {\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\n\tvar lowerDigest = (digest || 'sha1').toLowerCase();\n\tvar mappedDigest = mapping[lowerDigest] || lowerDigest;\n\tvar size = sizes[mappedDigest];\n\tif (typeof size !== 'number' || !size) {\n\t\tthrow new TypeError('Digest algorithm not supported: ' + digest);\n\t}\n\n\tvar hmac = new Hmac(mappedDigest, password, salt.length);\n\n\tvar DK = Buffer.allocUnsafe(keylen);\n\tvar block1 = Buffer.allocUnsafe(salt.length + 4);\n\tsalt.copy(block1, 0, 0, salt.length);\n\n\tvar destPos = 0;\n\tvar hLen = size;\n\tvar l = Math.ceil(keylen / hLen);\n\n\tfor (var i = 1; i <= l; i++) {\n\t\tblock1.writeUInt32BE(i, salt.length);\n\n\t\tvar T = hmac.run(block1, hmac.ipad1);\n\t\tvar U = T;\n\n\t\tfor (var j = 1; j < iterations; j++) {\n\t\t\tU = hmac.run(U, hmac.ipad2);\n\t\t\tfor (var k = 0; k < hLen; k++) {\n\t\t\t\tT[k] ^= U[k];\n\t\t\t}\n\t\t}\n\n\t\tT.copy(DK, destPos);\n\t\tdestPos += hLen;\n\t}\n\n\treturn DK;\n}\n\nmodule.exports = pbkdf2;\n","// Backbone.js 1.6.1\n\n// (c) 2010-2024 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.6.1';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n\n // Just _.defaults would work fine, but the additional _.extends\n // is in there for historical reasons. See #3843.\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) {\n var prevId = this.id;\n this.id = this.get(this.idAttribute);\n if (this.id !== prevId) {\n this.trigger('changeId', this, prevId, options);\n }\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) {\n m.off('error', collection._forwardPristineError, collection);\n collection.add(m, callbackOpts);\n }\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n // In case of wait:true, our collection is not listening to any\n // of the model's events yet, so it will not forward the error\n // event. In this special case, we need to listen for it\n // separately and handle the event just once.\n // (The reason we don't need to do this for the sync event is\n // in the success handler above: we add the model first, which\n // causes the collection to listen, and then invoke the callback\n // that triggers the event.)\n if (wait) {\n model.once('error', this._forwardPristineError, this);\n }\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs, idAttribute) {\n return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n\n var model;\n if (this.model.prototype) {\n model = new this.model(attrs, options);\n } else {\n // ES class methods didn't have prototype\n model = this.model(attrs, options);\n }\n\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n if (models.length > 0 && !options.silent) delete options.index;\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'changeId') {\n var prevId = this.modelId(model.previousAttributes(), model.idAttribute);\n var id = this.modelId(model.attributes, model.idAttribute);\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n },\n\n // Internal callback method used in `create`. It serves as a\n // stand-in for the `_onModelEvent` method, which is not yet bound\n // during the `wait` period of the `create` call. We still want to\n // forward any `'error'` event at the end of the `wait` period,\n // hence a customized callback.\n _forwardPristineError: function(model, collection, options) {\n // Prevent double forward if the model was already in the\n // collection before the call to `create`.\n if (this.has(model)) return;\n this._onModelEvent('error', model, collection, options);\n }\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes, model.idAttribute);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._trailingSlash = this.options.trailingSlash;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) {\n if (!this.matchRoot()) return this.notfound();\n return false;\n }\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return this.notfound();\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n }) || this.notfound();\n },\n\n // When no route could be matched, this method is called internally to\n // trigger the `'notfound'` event. It returns `false` so that it can be used\n // in tail position.\n notfound: function() {\n this.trigger('notfound');\n return false;\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Strip trailing slash on the root unless _trailingSlash is true\n var rootPath = this.root;\n if (!this._trailingSlash && (fragment === '' || fragment.charAt(0) === '?')) {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n // Provide useful information when things go wrong. This method is not meant\n // to be used directly; it merely provides the necessary introspection for the\n // external `debugInfo` function.\n Backbone._debug = function() {\n return {root: root, _: _};\n };\n\n return Backbone;\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\n\nvar $Array = Array;\n\nvar IteratorProxy = createIteratorProxy(function () {\n while (true) {\n var iterator = this.iterator;\n if (!iterator) {\n var iterableIndex = this.nextIterableIndex++;\n var iterables = this.iterables;\n if (iterableIndex >= iterables.length) {\n this.done = true;\n return;\n }\n var entry = iterables[iterableIndex];\n this.iterables[iterableIndex] = null;\n iterator = this.iterator = call(entry.method, entry.iterable);\n this.next = iterator.next;\n }\n var result = anObject(call(this.next, iterator));\n if (result.done) {\n this.iterator = null;\n this.next = null;\n continue;\n }\n return result.value;\n }\n});\n\n// `Iterator.concat` method\n// https://github.com/tc39/proposal-iterator-sequencing\n$({ target: 'Iterator', stat: true }, {\n concat: function concat() {\n var length = arguments.length;\n var iterables = $Array(length);\n for (var index = 0; index < length; index++) {\n var item = anObject(arguments[index]);\n iterables[index] = {\n iterable: item,\n method: aCallable(getIteratorMethod(item))\n };\n }\n return new IteratorProxy({\n iterables: iterables,\n nextIterableIndex: 0,\n iterator: null,\n next: null\n });\n }\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });\nvar filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);\n\nvar FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n filter: function filter(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);\n\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\nvar fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\n// based on Shewchuk's algorithm for exactly floating point addition\n// adapted from https://github.com/tc39/proposal-math-sum/blob/3513d58323a1ae25560e8700aa5294500c6c9287/polyfill/polyfill.mjs\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterate = require('../internals/iterate');\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar $Infinity = Infinity;\nvar $NaN = NaN;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar push = uncurryThis([].push);\n\nvar POW_2_1023 = pow(2, 1023);\nvar MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740992\nvar MAX_DOUBLE = Number.MAX_VALUE; // 2 ** 1024 - 2 ** (1023 - 52) === 1.79769313486231570815e+308\nvar MAX_ULP = pow(2, 971); // 2 ** (1023 - 52) === 1.99584030953471981166e+292\n\nvar NOT_A_NUMBER = {};\nvar MINUS_INFINITY = {};\nvar PLUS_INFINITY = {};\nvar MINUS_ZERO = {};\nvar FINITE = {};\n\n// prerequisite: abs(x) >= abs(y)\nvar twosum = function (x, y) {\n var hi = x + y;\n var lo = y - (hi - x);\n return { hi: hi, lo: lo };\n};\n\n// `Math.sumPrecise` method\n// https://github.com/tc39/proposal-math-sum\n$({ target: 'Math', stat: true }, {\n // eslint-disable-next-line max-statements -- ok\n sumPrecise: function sumPrecise(items) {\n var numbers = [];\n var count = 0;\n var state = MINUS_ZERO;\n\n iterate(items, function (n) {\n if (++count >= MAX_SAFE_INTEGER) throw new $RangeError('Maximum allowed index exceeded');\n if (typeof n != 'number') throw new $TypeError('Value is not a number');\n if (state !== NOT_A_NUMBER) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (n !== n) state = NOT_A_NUMBER;\n else if (n === $Infinity) state = state === MINUS_INFINITY ? NOT_A_NUMBER : PLUS_INFINITY;\n else if (n === -$Infinity) state = state === PLUS_INFINITY ? NOT_A_NUMBER : MINUS_INFINITY;\n else if ((n !== 0 || (1 / n) === $Infinity) && (state === MINUS_ZERO || state === FINITE)) {\n state = FINITE;\n push(numbers, n);\n }\n }\n });\n\n switch (state) {\n case NOT_A_NUMBER: return $NaN;\n case MINUS_INFINITY: return -$Infinity;\n case PLUS_INFINITY: return $Infinity;\n case MINUS_ZERO: return -0;\n }\n\n var partials = [];\n var overflow = 0; // conceptually 2 ** 1024 times this value; the final partial is biased by this amount\n var x, y, sum, hi, lo, tmp;\n\n for (var i = 0; i < numbers.length; i++) {\n x = numbers[i];\n var actuallyUsedPartials = 0;\n for (var j = 0; j < partials.length; j++) {\n y = partials[j];\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n if (abs(hi) === $Infinity) {\n var sign = hi === $Infinity ? 1 : -1;\n overflow += sign;\n\n x = (x - (sign * POW_2_1023)) - (sign * POW_2_1023);\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n }\n if (lo !== 0) partials[actuallyUsedPartials++] = lo;\n x = hi;\n }\n partials.length = actuallyUsedPartials;\n if (x !== 0) push(partials, x);\n }\n\n // compute the exact sum of partials, stopping once we lose precision\n var n = partials.length - 1;\n hi = 0;\n lo = 0;\n\n if (overflow !== 0) {\n var next = n >= 0 ? partials[n] : 0;\n n--;\n if (abs(overflow) > 1 || (overflow > 0 && next > 0) || (overflow < 0 && next < 0)) {\n return overflow > 0 ? $Infinity : -$Infinity;\n }\n // here we actually have to do the arithmetic\n // drop a factor of 2 so we can do it without overflow\n // assert(abs(overflow) === 1)\n sum = twosum(overflow * POW_2_1023, next / 2);\n hi = sum.hi;\n lo = sum.lo;\n lo *= 2;\n if (abs(2 * hi) === $Infinity) {\n // rounding to the maximum value\n if (hi > 0) {\n return (hi === POW_2_1023 && lo === -(MAX_ULP / 2) && n >= 0 && partials[n] < 0) ? MAX_DOUBLE : $Infinity;\n } return (hi === -POW_2_1023 && lo === (MAX_ULP / 2) && n >= 0 && partials[n] > 0) ? -MAX_DOUBLE : -$Infinity;\n }\n\n if (lo !== 0) {\n partials[++n] = lo;\n lo = 0;\n }\n\n hi *= 2;\n }\n\n while (n >= 0) {\n sum = twosum(hi, partials[n--]);\n hi = sum.hi;\n lo = sum.lo;\n if (lo !== 0) break;\n }\n\n if (n >= 0 && ((lo < 0 && partials[n] < 0) || (lo > 0 && partials[n] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y === x - hi) hi = x;\n }\n\n return hi;\n }\n});\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) !== INVALID_DATE) {\n defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n var value = thisTimeValue(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString(this) : INVALID_DATE;\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalStateModule = require('../internals/internal-state');\nvar iteratorClose = require('../internals/iterator-close');\nvar getBuiltIn = require('../internals/get-built-in');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar Promise = getBuiltIn('Promise');\n\nvar ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ASYNC_FROM_SYNC_ITERATOR);\n\nvar asyncFromSyncIteratorContinuation = function (result, resolve, reject, syncIterator, closeOnRejection) {\n var done = result.done;\n Promise.resolve(result.value).then(function (value) {\n resolve(createIterResultObject(value, done));\n }, function (error) {\n if (!done && closeOnRejection) {\n try {\n iteratorClose(syncIterator, 'throw', error);\n } catch (error2) {\n error = error2;\n }\n }\n\n reject(error);\n });\n};\n\nvar AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {\n iteratorRecord.type = ASYNC_FROM_SYNC_ITERATOR;\n setInternalState(this, iteratorRecord);\n};\n\nAsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n return new Promise(function (resolve, reject) {\n var result = anObject(call(state.next, state.iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject, state.iterator, true);\n });\n },\n 'return': function () {\n var iterator = getInternalState(this).iterator;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(iterator, 'return');\n if ($return === undefined) return resolve(createIterResultObject(undefined, true));\n var result = anObject(call($return, iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject, iterator);\n });\n }\n});\n\nmodule.exports = AsyncFromSyncIterator;\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428A2F98,\n\t0x71374491,\n\t0xB5C0FBCF,\n\t0xE9B5DBA5,\n\t0x3956C25B,\n\t0x59F111F1,\n\t0x923F82A4,\n\t0xAB1C5ED5,\n\t0xD807AA98,\n\t0x12835B01,\n\t0x243185BE,\n\t0x550C7DC3,\n\t0x72BE5D74,\n\t0x80DEB1FE,\n\t0x9BDC06A7,\n\t0xC19BF174,\n\t0xE49B69C1,\n\t0xEFBE4786,\n\t0x0FC19DC6,\n\t0x240CA1CC,\n\t0x2DE92C6F,\n\t0x4A7484AA,\n\t0x5CB0A9DC,\n\t0x76F988DA,\n\t0x983E5152,\n\t0xA831C66D,\n\t0xB00327C8,\n\t0xBF597FC7,\n\t0xC6E00BF3,\n\t0xD5A79147,\n\t0x06CA6351,\n\t0x14292967,\n\t0x27B70A85,\n\t0x2E1B2138,\n\t0x4D2C6DFC,\n\t0x53380D13,\n\t0x650A7354,\n\t0x766A0ABB,\n\t0x81C2C92E,\n\t0x92722C85,\n\t0xA2BFE8A1,\n\t0xA81A664B,\n\t0xC24B8B70,\n\t0xC76C51A3,\n\t0xD192E819,\n\t0xD6990624,\n\t0xF40E3585,\n\t0x106AA070,\n\t0x19A4C116,\n\t0x1E376C08,\n\t0x2748774C,\n\t0x34B0BCB5,\n\t0x391C0CB3,\n\t0x4ED8AA4A,\n\t0x5B9CCA4F,\n\t0x682E6FF3,\n\t0x748F82EE,\n\t0x78A5636F,\n\t0x84C87814,\n\t0x8CC70208,\n\t0x90BEFFFA,\n\t0xA4506CEB,\n\t0xBEF9A3F7,\n\t0xC67178F2\n];\n\nvar W = new Array(64);\n\nfunction Sha256() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n\tthis._a = 0x6a09e667;\n\tthis._b = 0xbb67ae85;\n\tthis._c = 0x3c6ef372;\n\tthis._d = 0xa54ff53a;\n\tthis._e = 0x510e527f;\n\tthis._f = 0x9b05688c;\n\tthis._g = 0x1f83d9ab;\n\tthis._h = 0x5be0cd19;\n\n\treturn this;\n};\n\nfunction ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x) {\n\treturn ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10));\n}\n\nfunction sigma1(x) {\n\treturn ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7));\n}\n\nfunction gamma0(x) {\n\treturn ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3);\n}\n\nfunction gamma1(x) {\n\treturn ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10);\n}\n\nSha256.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\tvar f = this._f | 0;\n\tvar g = this._g | 0;\n\tvar h = this._h | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 64; ++i) {\n\t\tw[i] = (gamma1(w[i - 2]) + w[i - 7] + gamma0(w[i - 15]) + w[i - 16]) | 0;\n\t}\n\n\tfor (var j = 0; j < 64; ++j) {\n\t\tvar T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + w[j]) | 0;\n\t\tvar T2 = (sigma0(a) + maj(a, b, c)) | 0;\n\n\t\th = g;\n\t\tg = f;\n\t\tf = e;\n\t\te = (d + T1) | 0;\n\t\td = c;\n\t\tc = b;\n\t\tb = a;\n\t\ta = (T1 + T2) | 0;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n\tthis._f = (f + this._f) | 0;\n\tthis._g = (g + this._g) | 0;\n\tthis._h = (h + this._h) | 0;\n};\n\nSha256.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(32);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\tH.writeInt32BE(this._h, 28);\n\n\treturn H;\n};\n\nmodule.exports = Sha256;\n","'use strict';\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw new $RangeError('NaN is not allowed');\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'DataView') return argument;\n throw new $TypeError('Argument is not a DataView');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\n\n// `DataView` constructor\n// https://tc39.es/ecma262/#sec-dataview-constructor\n$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, {\n DataView: ArrayBufferModule.DataView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(globalThis.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: globalThis.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar Promise = getBuiltIn('Promise');\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar ASYNC_DISPOSABLE_STACK = 'AsyncDisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getAsyncDisposableStackInternalState = InternalStateModule.getterFor(ASYNC_DISPOSABLE_STACK);\n\nvar HINT = 'async-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingAsyncDisposableStackInternalState = function (stack) {\n var internalState = getAsyncDisposableStackInternalState(stack);\n if (internalState.state === DISPOSED) throw new $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed');\n return internalState;\n};\n\nvar $AsyncDisposableStack = function AsyncDisposableStack() {\n setInternalState(anInstance(this, AsyncDisposableStackPrototype), {\n type: ASYNC_DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype;\n\ndefineBuiltIns(AsyncDisposableStackPrototype, {\n disposeAsync: function disposeAsync() {\n var asyncDisposableStack = this;\n return new Promise(function (resolve, reject) {\n var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack);\n if (internalState.state === DISPOSED) return resolve(undefined);\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) asyncDisposableStack.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n\n var handleError = function (result) {\n if (thrown) {\n suppressed = new SuppressedError(result, suppressed);\n } else {\n thrown = true;\n suppressed = result;\n }\n\n loop();\n };\n\n var loop = function () {\n if (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n Promise.resolve(disposeMethod()).then(loop, handleError);\n } catch (error) {\n handleError(error);\n }\n } else {\n internalState.stack = null;\n thrown ? reject(suppressed) : resolve(undefined);\n }\n };\n\n loop();\n });\n },\n use: function use(value) {\n addDisposableResource(getPendingAsyncDisposableStackInternalState(this), value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n return onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n var newAsyncDisposableStack = new $AsyncDisposableStack();\n getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n return newAsyncDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getAsyncDisposableStackInternalState(this).state === DISPOSED;\n }\n});\n\ndefineBuiltIn(AsyncDisposableStackPrototype, ASYNC_DISPOSE, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' });\ndefineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STACK, { nonWritable: true });\n\n// https://github.com/tc39/proposal-explicit-resource-management/issues/256\n// can't be detected synchronously\nvar SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG = V8_VERSION && V8_VERSION < 136;\n\n$({ global: true, constructor: true, forced: SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG }, {\n AsyncDisposableStack: $AsyncDisposableStack\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isObject(searchValue) ? getMethod(searchValue, REPLACE) : undefined;\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var flags = toString(getRegExpFlags(rx));\n var global = stringIndexOf(flags, 'g') !== -1;\n var fullUnicode;\n if (global) {\n fullUnicode = stringIndexOf(flags, 'u') !== -1;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","'use strict';\nvar $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, {\n parseInt: parseInt\n});\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Sha256 = require('./sha256');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(64);\n\nfunction Sha224() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha224, Sha256);\n\nSha224.prototype.init = function () {\n\tthis._a = 0xc1059ed8;\n\tthis._b = 0x367cd507;\n\tthis._c = 0x3070dd17;\n\tthis._d = 0xf70e5939;\n\tthis._e = 0xffc00b31;\n\tthis._f = 0x68581511;\n\tthis._g = 0x64f98fa7;\n\tthis._h = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha224.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(28);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\n\treturn H;\n};\n\nmodule.exports = Sha224;\n","'use strict';\nvar $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return call(URL.prototype.toString, this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar $RangeError = RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');\n elements[i] = code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n } return join(elements, '');\n }\n});\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha, Hash);\n\nSha.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16];\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha;\n","'use strict';\n/* eslint-disable es/no-json -- safe */\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var unsafeInt = '9007199254740993';\n // eslint-disable-next-line es/no-json-rawjson -- feature detection\n var raw = JSON.rawJSON(unsafeInt);\n // eslint-disable-next-line es/no-json-israwjson -- feature detection\n return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\n/* eslint-disable es/no-string-prototype-matchall -- safe */\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar nativeMatchAll = uncurryThis(''.matchAll);\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n nativeMatchAll('a', /./);\n});\n\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: $global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return createIterResultObject(undefined, true);\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) {\n state.done = true;\n return createIterResultObject(undefined, true);\n }\n if (state.global) {\n if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return createIterResultObject(match, false);\n }\n state.done = true;\n return createIterResultObject(match, false);\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = toString(string);\n var C = speciesConstructor(R, RegExp);\n var flags = toString(getRegExpFlags(R));\n var matcher, $global, fullUnicode;\n matcher = new C(C === RegExp ? R.source : R, flags);\n $global = !!~stringIndexOf(flags, 'g');\n fullUnicode = !!~stringIndexOf(flags, 'u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, $global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (isObject(regexp)) {\n if (isRegExp(regexp)) {\n flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));\n if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n matcher = getMethod(regexp, MATCH_ALL);\n if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll;\n if (matcher) return call(matcher, regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n S = toString(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n setArrayLength(A, n);\n return A;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = globalThis.RangeError;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw new RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = globalThis.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar iteratorClose = require('../internals/iterator-close');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('drop', 0);\nvar dropWithoutClosingOnEarlyError = !IS_PURE && !DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);\n\nvar FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining;\n try {\n remaining = toPositiveInteger(notANaN(+limit));\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (dropWithoutClosingOnEarlyError) return call(dropWithoutClosingOnEarlyError, this, remaining);\n\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = getTypedArrayConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aWeakMap = require('../internals/a-weak-map');\nvar aWeakKey = require('../internals/a-weak-key');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\nvar FORCED = IS_PURE || !function () {\n try {\n // eslint-disable-next-line es/no-weak-map, no-throw-literal -- testing\n if (WeakMap.prototype.getOrInsertComputed) new WeakMap().getOrInsertComputed(1, function () { throw 1; });\n } catch (error) {\n // FF144 Nightly - Beta 3 bug\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369\n return error instanceof TypeError;\n }\n}();\n\n// `WeakMap.prototype.getOrInsertComputed` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n aWeakMap(this);\n aWeakKey(key);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","'use strict';\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getTypedArrayConstructor = require('../internals/array-buffer-view-core').getTypedArrayConstructor;\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(getTypedArrayConstructor(instance), list);\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar IS_PURE = require('../internals/is-pure');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\n// Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n// https://bugs.webkit.org/show_bug.cgi?id=297532\nfunction throwsOnIteratorWithoutReturn() {\n try {\n // eslint-disable-next-line es/no-map, es/no-iterator, es/no-iterator-prototype-flatmap -- required for testing\n var it = Iterator.prototype.flatMap.call(new Map([[4, 5]]).entries(), function (v) { return v; });\n it.next();\n it['return']();\n } catch (error) {\n return true;\n }\n}\n\nvar FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE\n && !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });\nvar flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);\n\nvar FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError\n || throwsOnIteratorWithoutReturn();\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var mapper = this.mapper;\n var result, inner;\n\n while (true) {\n if (inner = this.inner) try {\n result = anObject(call(inner.next, inner.iterator));\n if (!result.done) return result.value;\n this.inner = null;\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n result = anObject(call(this.next, iterator));\n\n if (this.done = !!result.done) return;\n\n try {\n this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n flatMap: function flatMap(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (flatMapWithoutClosingOnEarlyError) return call(flatMapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper,\n inner: null\n });\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\n// Should throw an error on invalid iterator\n// https://issues.chromium.org/issues/336839115\nmodule.exports = function (methodName, argument) {\n // eslint-disable-next-line es/no-iterator -- required for testing\n var method = typeof Iterator == 'function' && Iterator.prototype[methodName];\n if (method) try {\n method.call({ next: null }, argument).next();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isConstructor = require('../internals/is-constructor');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\n\nvar $Array = Array;\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n // eslint-disable-next-line es/no-array-of -- safe\n return !($Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (isConstructor(this) ? this : $Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n setArrayLength(result, argumentsLength);\n return result;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.1.valueOf);\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar slice = require('../internals/array-slice');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar aCallable = require('../internals/a-callable');\nvar perform = require('../internals/perform');\n\nvar Promise = globalThis.Promise;\n\nvar ACCEPT_ARGUMENTS = false;\n// Avoiding the use of polyfills of the previous iteration of this proposal\n// that does not accept arguments of the callback\nvar FORCED = !Promise || !Promise['try'] || perform(function () {\n Promise['try'](function (argument) {\n ACCEPT_ARGUMENTS = argument === 8;\n }, 8);\n}).error || !ACCEPT_ARGUMENTS;\n\n// `Promise.try` method\n// https://tc39.es/ecma262/#sec-promise.try\n$({ target: 'Promise', stat: true, forced: FORCED }, {\n 'try': function (callbackfn /* , ...args */) {\n var args = arguments.length > 1 ? slice(arguments, 1) : [];\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(function () {\n return apply(aCallable(callbackfn), undefined, args);\n });\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n union: union\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.contactsmenu[data-v-253ecd69]{overflow-y:hidden}.contactsmenu__trigger-icon[data-v-253ecd69]{color:var(--color-background-plain-text) !important}.contactsmenu__menu[data-v-253ecd69]{display:flex;flex-direction:column;overflow:hidden;height:328px;max-height:inherit}.contactsmenu__menu__search-container[data-v-253ecd69]{padding:10px;display:flex;flex:row nowrap;column-gap:10px}.contactsmenu__menu__input-wrapper[data-v-253ecd69]{z-index:2;top:0;flex-grow:1;display:flex;gap:var(--default-grid-baseline)}.contactsmenu__menu__search[data-v-253ecd69]{width:100%;height:34px;margin-top:0 !important}.contactsmenu__menu__content[data-v-253ecd69]{overflow-y:auto;margin-top:10px;flex:1 1 auto}.contactsmenu__menu__content__footer[data-v-253ecd69]{display:flex;flex-direction:column;align-items:center}.contactsmenu__menu a[data-v-253ecd69]:focus-visible{box-shadow:inset 0 0 0 2px var(--color-main-text) !important}.contactsmenu[data-v-253ecd69] .empty-content{margin:0 !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/ContactsMenu.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,iBAAA,CAEA,6CACC,mDAAA,CAGD,qCACC,YAAA,CACA,qBAAA,CACA,eAAA,CACA,YAAA,CACA,kBAAA,CAEA,uDACC,YAAA,CACA,YAAA,CACA,eAAA,CACA,eAAA,CAGD,oDACC,SAAA,CACA,KAAA,CACA,WAAA,CACA,YAAA,CACA,gCAAA,CAGD,6CACC,UAAA,CACA,WAAA,CACA,uBAAA,CAGD,8CACC,eAAA,CACA,eAAA,CACA,aAAA,CAEA,sDACC,YAAA,CACA,qBAAA,CACA,kBAAA,CAKD,qDACC,4DAAA,CAKH,8CACC,mBAAA\",\"sourcesContent\":[\"\\n.contactsmenu {\\n\\toverflow-y: hidden;\\n\\n\\t&__trigger-icon {\\n\\t\\tcolor: var(--color-background-plain-text) !important;\\n\\t}\\n\\n\\t&__menu {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\toverflow: hidden;\\n\\t\\theight: calc(50px * 6 + 2px + 26px);\\n\\t\\tmax-height: inherit;\\n\\n\\t\\t&__search-container {\\n\\t\\t\\tpadding: 10px;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: row nowrap;\\n\\t\\t\\tcolumn-gap: 10px;\\n\\t\\t}\\n\\n\\t\\t&__input-wrapper {\\n\\t\\t\\tz-index: 2;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: var(--default-grid-baseline);\\n\\t\\t}\\n\\n\\t\\t&__search {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 34px;\\n\\t\\t\\tmargin-top: 0!important;\\n\\t\\t}\\n\\n\\t\\t&__content {\\n\\t\\t\\toverflow-y: auto;\\n\\t\\t\\tmargin-top: 10px;\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\t&__footer {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\ta {\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbox-shadow: inset 0 0 0 2px var(--color-main-text) !important; // override rule in core/css/headers.scss #header a:focus-visible\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t:deep(.empty-content) {\\n\\t\\tmargin: 0 !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isIntegralNumber\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","'use strict';\n\nvar inherits = require('inherits');\nvar SHA512 = require('./sha512');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(160);\n\nfunction Sha384() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha384, SHA512);\n\nSha384.prototype.init = function () {\n\tthis._ah = 0xcbbb9d5d;\n\tthis._bh = 0x629a292a;\n\tthis._ch = 0x9159015a;\n\tthis._dh = 0x152fecd8;\n\tthis._eh = 0x67332667;\n\tthis._fh = 0x8eb44a87;\n\tthis._gh = 0xdb0c2e0d;\n\tthis._hh = 0x47b5481d;\n\n\tthis._al = 0xc1059ed8;\n\tthis._bl = 0x367cd507;\n\tthis._cl = 0x3070dd17;\n\tthis._dl = 0xf70e5939;\n\tthis._el = 0xffc00b31;\n\tthis._fl = 0x68581511;\n\tthis._gl = 0x64f98fa7;\n\tthis._hl = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha384.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(48);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\n\treturn H;\n};\n\nmodule.exports = Sha384;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[data-v-6c007912] #header-menu-user-menu{padding:0 !important}.account-menu[data-v-6c007912] *{mask:none !important}.account-menu__avatar[data-v-6c007912]{--account-menu-outline: var(--border-width-input) solid color-mix(in srgb, var(--color-background-plain-text), transparent 75%);outline:var(--account-menu-outline);position:fixed}.account-menu__avatar[data-v-6c007912]:hover{--account-menu-outline: none;border:var(--border-width-input-focused) solid var(--color-background-plain-text)}.account-menu__list[data-v-6c007912]{display:inline-flex;flex-direction:column;padding-block:var(--default-grid-baseline) 0;padding-inline:0 var(--default-grid-baseline)}.account-menu__list[data-v-6c007912]> li{box-sizing:border-box;flex:0 1}.account-menu[data-v-6c007912] .header-menu__content{width:fit-content !important}.account-menu[data-v-6c007912] button{opacity:1 !important}.account-menu[data-v-6c007912] button:focus-visible .account-menu__avatar{--account-menu-outline: none;border:var(--border-width-input-focused) solid var(--color-background-plain-text)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/AccountMenu.vue\"],\"names\":[],\"mappings\":\"AACA,yCACC,oBAAA,CAIA,iCAEC,oBAAA,CAGD,uCACC,+HAAA,CACA,mCAAA,CACA,cAAA,CAEA,6CACC,4BAAA,CAEA,iFAAA,CAIF,qCACC,mBAAA,CACA,qBAAA,CACA,4CAAA,CACA,6CAAA,CAEA,yCACC,qBAAA,CAEA,QAAA,CAKF,qDACC,4BAAA,CAGD,sCAGC,oBAAA,CAKC,0EACC,4BAAA,CACA,iFAAA\",\"sourcesContent\":[\"\\n:deep(#header-menu-user-menu) {\\n\\tpadding: 0 !important;\\n}\\n\\n.account-menu {\\n\\t:deep(*) {\\n\\t\\t// do not apply the alpha mask on the avatar div\\n\\t\\tmask: none !important;\\n\\t}\\n\\n\\t&__avatar {\\n\\t\\t--account-menu-outline: var(--border-width-input) solid color-mix(in srgb, var(--color-background-plain-text), transparent 75%);\\n\\t\\toutline: var(--account-menu-outline);\\n\\t\\tposition: fixed;\\n\\n\\t\\t&:hover {\\n\\t\\t\\t--account-menu-outline: none;\\n\\t\\t\\t// Add hover styles similar to the focus-visible style\\n\\t\\t\\tborder: var(--border-width-input-focused) solid var(--color-background-plain-text);\\n\\t\\t}\\n\\t}\\n\\n\\t&__list {\\n\\t\\tdisplay: inline-flex;\\n\\t\\tflex-direction: column;\\n\\t\\tpadding-block: var(--default-grid-baseline) 0;\\n\\t\\tpadding-inline: 0 var(--default-grid-baseline);\\n\\n\\t\\t> :deep(li) {\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t// basically \\\"fit-content\\\"\\n\\t\\t\\tflex: 0 1;\\n\\t\\t}\\n\\t}\\n\\n\\t// Ensure we do not waste space, as the header menu sets a default width of 350px\\n\\t:deep(.header-menu__content) {\\n\\t\\twidth: fit-content !important;\\n\\t}\\n\\n\\t:deep(button) {\\n\\t\\t// Normally header menus are slightly translucent when not active\\n\\t\\t// this is generally ok but for the avatar this is weird so fix the opacity\\n\\t\\topacity: 1 !important;\\n\\n\\t\\t// The avatar is just the \\\"icon\\\" of the button\\n\\t\\t// So we add the focus-visible manually\\n\\t\\t&:focus-visible {\\n\\t\\t\\t.account-menu__avatar {\\n\\t\\t\\t\\t--account-menu-outline: none;\\n\\t\\t\\t\\tborder: var(--border-width-input-focused) solid var(--color-background-plain-text);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isRawJSON = require('../internals/is-raw-json');\nvar isSymbol = require('../internals/is-symbol');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\nvar arraySlice = require('../internals/array-slice');\nvar parseJSONString = require('../internals/parse-json-string');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar slice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\nvar numberToString = uncurryThis(1.1.toString);\n\nvar surrogates = /[\\uD800-\\uDFFF]/g;\nvar lowSurrogates = /^[\\uD800-\\uDBFF]$/;\nvar hiSurrogates = /^[\\uDC00-\\uDFFF]$/;\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n} : $stringify;\n\nvar fixIllFormedJSON = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(lowSurrogates, match) && !exec(hiSurrogates, next)) || (exec(hiSurrogates, match) && !exec(lowSurrogates, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nvar getReplacerFunction = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {\n stringify: function stringify(text, replacer, space) {\n var replacerFunction = getReplacerFunction(replacer);\n var rawStrings = [];\n\n var json = stringifyWithProperSymbolsConversion(text, function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n }, space);\n\n if (typeof json != 'string') return json;\n\n if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);\n\n if (NATIVE_RAW_JSON) return json;\n\n var result = '';\n var length = json.length;\n\n for (var i = 0; i < length; i++) {\n var chr = charAt(json, i);\n if (chr === '\"') {\n var end = parseJSONString(json, ++i).end - 1;\n var string = slice(json, i, end);\n result += slice(string, 0, MARK_LENGTH) === MARK\n ? rawStrings[slice(string, MARK_LENGTH)]\n : '\"' + string + '\"';\n i = end;\n } else result += chr;\n }\n\n return result;\n }\n});\n","'use strict';\nvar sign = require('../internals/math-sign');\nvar roundTiesToEven = require('../internals/math-round-ties-to-even');\n\nvar abs = Math.abs;\n\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\n\nmodule.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {\n var n = +x;\n var absolute = abs(n);\n var s = sign(n);\n if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON;\n var a = (1 + FLOAT_EPSILON / EPSILON) * absolute;\n var result = a - (a - absolute);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity;\n return s * result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'use strict';\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimRight` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, {\n trimRight: trimEnd\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = globalThis.parseFloat;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n if (classof(argument) === 'Uint8Array') return argument;\n throw new $TypeError('Argument is not an Uint8Array');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar aString = require('../internals/a-string');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar $fromHex = require('../internals/uint8-from-hex');\n\n// Should not throw an error on length-tracking views over ResizableArrayBuffer\n// https://issues.chromium.org/issues/454630441\nfunction throwsOnLengthTrackingView() {\n try {\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- required for testing\n var rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n // eslint-disable-next-line es/no-uint8array-prototype-setfromhex, es/no-typed-arrays -- required for testing\n new Uint8Array(rab).setFromHex('cafed00d');\n } catch (error) {\n return true;\n }\n}\n\n// `Uint8Array.prototype.setFromHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {\n setFromHex: function setFromHex(string) {\n anUint8Array(this);\n aString(string);\n notDetached(this.buffer);\n var read = $fromHex(string, this).read;\n return { read: read, written: read / 2 };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype, setter;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (isDataDescriptor(ownDescriptor)) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n } else {\n setter = ownDescriptor.set;\n if (setter === undefined) return false;\n call(setter, receiver, V);\n } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var Constructor = function () { /* empty */ };\n var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n // eslint-disable-next-line es/no-reflect -- required for testing\n return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n setArrayLength(result, n);\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"select2.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"select2-spinner.gif\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"select2x2.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\nVersion: @@ver@@ Timestamp: @@timestamp@@\n*/\n.select2-container {\n margin: 0;\n position: relative;\n display: inline-block;\n /* inline-block for ie7 */\n zoom: 1;\n *display: inline;\n vertical-align: middle;\n}\n\n.select2-container,\n.select2-drop,\n.select2-search,\n.select2-search input {\n /*\n Force border-box so that % widths fit the parent\n container without overlap because of margin/padding.\n More Info : http://www.quirksmode.org/css/box.html\n */\n -webkit-box-sizing: border-box; /* webkit */\n -moz-box-sizing: border-box; /* firefox */\n box-sizing: border-box; /* css3 */\n}\n\n.select2-container .select2-choice {\n display: block;\n height: 26px;\n padding: 0 0 0 8px;\n overflow: hidden;\n position: relative;\n\n border: 1px solid #aaa;\n white-space: nowrap;\n line-height: 26px;\n color: #444;\n text-decoration: none;\n\n border-radius: 4px;\n\n background-clip: padding-box;\n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n background-color: #fff;\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.5, #fff));\n background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 50%);\n background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 50%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ffffff', endColorstr = '#eeeeee', GradientType = 0);\n background-image: linear-gradient(to top, #eee 0%, #fff 50%);\n}\n\nhtml[dir=\"rtl\"] .select2-container .select2-choice {\n padding: 0 8px 0 0;\n}\n\n.select2-container.select2-drop-above .select2-choice {\n border-bottom-color: #aaa;\n\n border-radius: 0 0 4px 4px;\n\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.9, #fff));\n background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 90%);\n background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 90%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);\n background-image: linear-gradient(to bottom, #eee 0%, #fff 90%);\n}\n\n.select2-container.select2-allowclear .select2-choice .select2-chosen {\n margin-right: 42px;\n}\n\n.select2-container .select2-choice > .select2-chosen {\n margin-right: 26px;\n display: block;\n overflow: hidden;\n\n white-space: nowrap;\n\n text-overflow: ellipsis;\n float: none;\n width: auto;\n}\n\nhtml[dir=\"rtl\"] .select2-container .select2-choice > .select2-chosen {\n margin-left: 26px;\n margin-right: 0;\n}\n\n.select2-container .select2-choice abbr {\n display: none;\n width: 12px;\n height: 12px;\n position: absolute;\n right: 24px;\n top: 8px;\n\n font-size: 1px;\n text-decoration: none;\n\n border: 0;\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) right top no-repeat;\n cursor: pointer;\n outline: 0;\n}\n\n.select2-container.select2-allowclear .select2-choice abbr {\n display: inline-block;\n}\n\n.select2-container .select2-choice abbr:hover {\n background-position: right -11px;\n cursor: pointer;\n}\n\n.select2-drop-mask {\n border: 0;\n margin: 0;\n padding: 0;\n position: fixed;\n left: 0;\n top: 0;\n min-height: 100%;\n min-width: 100%;\n height: auto;\n width: auto;\n opacity: 0;\n z-index: 9998;\n /* styles required for IE to work */\n background-color: #fff;\n filter: alpha(opacity=0);\n}\n\n.select2-drop {\n width: 100%;\n margin-top: -1px;\n position: absolute;\n z-index: 9999;\n top: 100%;\n\n background: #fff;\n color: #000;\n border: 1px solid #aaa;\n border-top: 0;\n\n border-radius: 0 0 4px 4px;\n\n -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);\n box-shadow: 0 4px 5px rgba(0, 0, 0, .15);\n}\n\n.select2-drop.select2-drop-above {\n margin-top: 1px;\n border-top: 1px solid #aaa;\n border-bottom: 0;\n\n border-radius: 4px 4px 0 0;\n\n -webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);\n box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);\n}\n\n.select2-drop-active {\n border: 1px solid #5897fb;\n border-top: none;\n}\n\n.select2-drop.select2-drop-above.select2-drop-active {\n border-top: 1px solid #5897fb;\n}\n\n.select2-drop-auto-width {\n border-top: 1px solid #aaa;\n width: auto;\n}\n\n.select2-drop-auto-width .select2-search {\n padding-top: 4px;\n}\n\n.select2-container .select2-choice .select2-arrow {\n display: inline-block;\n width: 18px;\n height: 100%;\n position: absolute;\n right: 0;\n top: 0;\n\n border-left: 1px solid #aaa;\n border-radius: 0 4px 4px 0;\n\n background-clip: padding-box;\n\n background: #ccc;\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));\n background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);\n background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc', GradientType = 0);\n background-image: linear-gradient(to top, #ccc 0%, #eee 60%);\n}\n\nhtml[dir=\"rtl\"] .select2-container .select2-choice .select2-arrow {\n left: 0;\n right: auto;\n\n border-left: none;\n border-right: 1px solid #aaa;\n border-radius: 4px 0 0 4px;\n}\n\n.select2-container .select2-choice .select2-arrow b {\n display: block;\n width: 100%;\n height: 100%;\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat 0 1px;\n}\n\nhtml[dir=\"rtl\"] .select2-container .select2-choice .select2-arrow b {\n background-position: 2px 1px;\n}\n\n.select2-search {\n display: inline-block;\n width: 100%;\n min-height: 26px;\n margin: 0;\n padding-left: 4px;\n padding-right: 4px;\n\n position: relative;\n z-index: 10000;\n\n white-space: nowrap;\n}\n\n.select2-search input {\n width: 100%;\n height: auto !important;\n min-height: 26px;\n padding: 4px 20px 4px 5px;\n margin: 0;\n\n outline: 0;\n font-family: sans-serif;\n font-size: 1em;\n\n border: 1px solid #aaa;\n border-radius: 0;\n\n -webkit-box-shadow: none;\n box-shadow: none;\n\n background: #fff url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat 100% -22px;\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat 100% -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat 100% -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat 100% -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;\n}\n\nhtml[dir=\"rtl\"] .select2-search input {\n padding: 4px 5px 4px 20px;\n\n background: #fff url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat -37px -22px;\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat -37px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat -37px -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat -37px -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat -37px -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;\n}\n\n.select2-drop.select2-drop-above .select2-search input {\n margin-top: 4px;\n}\n\n.select2-search input.select2-active {\n background: #fff url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 100%;\n background: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));\n background: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 100%, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);\n background: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 100%, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);\n background: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 100%, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;\n}\n\n.select2-container-active .select2-choice,\n.select2-container-active .select2-choices {\n border: 1px solid #5897fb;\n outline: none;\n\n -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);\n box-shadow: 0 0 5px rgba(0, 0, 0, .3);\n}\n\n.select2-dropdown-open .select2-choice {\n border-bottom-color: transparent;\n -webkit-box-shadow: 0 1px 0 #fff inset;\n box-shadow: 0 1px 0 #fff inset;\n\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n\n background-color: #eee;\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(0.5, #eee));\n background-image: -webkit-linear-gradient(center bottom, #fff 0%, #eee 50%);\n background-image: -moz-linear-gradient(center bottom, #fff 0%, #eee 50%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);\n background-image: linear-gradient(to top, #fff 0%, #eee 50%);\n}\n\n.select2-dropdown-open.select2-drop-above .select2-choice,\n.select2-dropdown-open.select2-drop-above .select2-choices {\n border: 1px solid #5897fb;\n border-top-color: transparent;\n\n background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #eee));\n background-image: -webkit-linear-gradient(center top, #fff 0%, #eee 50%);\n background-image: -moz-linear-gradient(center top, #fff 0%, #eee 50%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);\n background-image: linear-gradient(to bottom, #fff 0%, #eee 50%);\n}\n\n.select2-dropdown-open .select2-choice .select2-arrow {\n background: transparent;\n border-left: none;\n filter: none;\n}\nhtml[dir=\"rtl\"] .select2-dropdown-open .select2-choice .select2-arrow {\n border-right: none;\n}\n\n.select2-dropdown-open .select2-choice .select2-arrow b {\n background-position: -18px 1px;\n}\n\nhtml[dir=\"rtl\"] .select2-dropdown-open .select2-choice .select2-arrow b {\n background-position: -16px 1px;\n}\n\n.select2-hidden-accessible {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n/* results */\n.select2-results {\n max-height: 200px;\n padding: 0 0 0 4px;\n margin: 4px 4px 4px 0;\n position: relative;\n overflow-x: hidden;\n overflow-y: auto;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhtml[dir=\"rtl\"] .select2-results {\n padding: 0 4px 0 0;\n margin: 4px 0 4px 4px;\n}\n\n.select2-results ul.select2-result-sub {\n margin: 0;\n padding-left: 0;\n}\n\n.select2-results li {\n list-style: none;\n display: list-item;\n background-image: none;\n}\n\n.select2-results li.select2-result-with-children > .select2-result-label {\n font-weight: bold;\n}\n\n.select2-results .select2-result-label {\n padding: 3px 7px 4px;\n margin: 0;\n cursor: pointer;\n\n min-height: 1em;\n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.select2-results-dept-1 .select2-result-label { padding-left: 20px }\n.select2-results-dept-2 .select2-result-label { padding-left: 40px }\n.select2-results-dept-3 .select2-result-label { padding-left: 60px }\n.select2-results-dept-4 .select2-result-label { padding-left: 80px }\n.select2-results-dept-5 .select2-result-label { padding-left: 100px }\n.select2-results-dept-6 .select2-result-label { padding-left: 110px }\n.select2-results-dept-7 .select2-result-label { padding-left: 120px }\n\n.select2-results .select2-highlighted {\n background: #3875d7;\n color: #fff;\n}\n\n.select2-results li em {\n background: #feffde;\n font-style: normal;\n}\n\n.select2-results .select2-highlighted em {\n background: transparent;\n}\n\n.select2-results .select2-highlighted ul {\n background: #fff;\n color: #000;\n}\n\n.select2-results .select2-no-results,\n.select2-results .select2-searching,\n.select2-results .select2-ajax-error,\n.select2-results .select2-selection-limit {\n background: #f4f4f4;\n display: list-item;\n padding-left: 5px;\n}\n\n/*\ndisabled look for disabled choices in the results dropdown\n*/\n.select2-results .select2-disabled.select2-highlighted {\n color: #666;\n background: #f4f4f4;\n display: list-item;\n cursor: default;\n}\n.select2-results .select2-disabled {\n background: #f4f4f4;\n display: list-item;\n cursor: default;\n}\n\n.select2-results .select2-selected {\n display: none;\n}\n\n.select2-more-results.select2-active {\n background: #f4f4f4 url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 100%;\n}\n\n.select2-results .select2-ajax-error {\n background: rgba(255, 50, 50, .2);\n}\n\n.select2-more-results {\n background: #f4f4f4;\n display: list-item;\n}\n\n/* disabled styles */\n\n.select2-container.select2-container-disabled .select2-choice {\n background-color: #f4f4f4;\n background-image: none;\n border: 1px solid #ddd;\n cursor: default;\n}\n\n.select2-container.select2-container-disabled .select2-choice .select2-arrow {\n background-color: #f4f4f4;\n background-image: none;\n border-left: 0;\n}\n\n.select2-container.select2-container-disabled .select2-choice abbr {\n display: none;\n}\n\n\n/* multiselect */\n\n.select2-container-multi .select2-choices {\n height: auto !important;\n height: 1%;\n margin: 0;\n padding: 0 5px 0 0;\n position: relative;\n\n border: 1px solid #aaa;\n cursor: text;\n overflow: hidden;\n\n background-color: #fff;\n background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eee), color-stop(15%, #fff));\n background-image: -webkit-linear-gradient(top, #eee 1%, #fff 15%);\n background-image: -moz-linear-gradient(top, #eee 1%, #fff 15%);\n background-image: linear-gradient(to bottom, #eee 1%, #fff 15%);\n}\n\nhtml[dir=\"rtl\"] .select2-container-multi .select2-choices {\n padding: 0 0 0 5px;\n}\n\n.select2-locked {\n padding: 3px 5px 3px 5px !important;\n}\n\n.select2-container-multi .select2-choices {\n min-height: 26px;\n}\n\n.select2-container-multi.select2-container-active .select2-choices {\n border: 1px solid #5897fb;\n outline: none;\n\n -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);\n box-shadow: 0 0 5px rgba(0, 0, 0, .3);\n}\n.select2-container-multi .select2-choices li {\n float: left;\n list-style: none;\n}\nhtml[dir=\"rtl\"] .select2-container-multi .select2-choices li\n{\n float: right;\n}\n.select2-container-multi .select2-choices .select2-search-field {\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n\n.select2-container-multi .select2-choices .select2-search-field input {\n padding: 5px;\n margin: 1px 0;\n\n font-family: sans-serif;\n font-size: 100%;\n color: #666;\n outline: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n background: transparent !important;\n}\n\n.select2-container-multi .select2-choices .select2-search-field input.select2-active {\n background: #fff url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 100% !important;\n}\n\n.select2-default {\n color: #999 !important;\n}\n\n.select2-container-multi .select2-choices .select2-search-choice {\n padding: 3px 5px 3px 18px;\n margin: 3px 0 3px 5px;\n position: relative;\n\n line-height: 13px;\n color: #333;\n cursor: default;\n border: 1px solid #aaaaaa;\n\n border-radius: 3px;\n\n -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);\n box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);\n\n background-clip: padding-box;\n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n background-color: #e4e4e4;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);\n background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));\n background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);\n background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);\n background-image: linear-gradient(to bottom, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);\n}\nhtml[dir=\"rtl\"] .select2-container-multi .select2-choices .select2-search-choice\n{\n margin: 3px 5px 3px 0;\n padding: 3px 18px 3px 5px;\n}\n.select2-container-multi .select2-choices .select2-search-choice .select2-chosen {\n cursor: default;\n}\n.select2-container-multi .select2-choices .select2-search-choice-focus {\n background: #d4d4d4;\n}\n\n.select2-search-choice-close {\n display: block;\n width: 12px;\n height: 13px;\n position: absolute;\n right: 3px;\n top: 4px;\n\n font-size: 1px;\n outline: none;\n background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) right top no-repeat;\n}\nhtml[dir=\"rtl\"] .select2-search-choice-close {\n right: auto;\n left: 3px;\n}\n\n.select2-container-multi .select2-search-choice-close {\n left: 3px;\n}\n\nhtml[dir=\"rtl\"] .select2-container-multi .select2-search-choice-close {\n left: auto;\n right: 2px;\n}\n\n.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {\n background-position: right -11px;\n}\n.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {\n background-position: right -11px;\n}\n\n/* disabled styles */\n.select2-container-multi.select2-container-disabled .select2-choices {\n background-color: #f4f4f4;\n background-image: none;\n border: 1px solid #ddd;\n cursor: default;\n}\n\n.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {\n padding: 3px 5px 3px 5px;\n border: 1px solid #ddd;\n background-image: none;\n background-color: #f4f4f4;\n}\n\n.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close { display: none;\n background: none;\n}\n/* end multiselect */\n\n\n.select2-result-selectable .select2-match,\n.select2-result-unselectable .select2-match {\n text-decoration: underline;\n}\n\n.select2-offscreen, .select2-offscreen:focus {\n clip: rect(0 0 0 0) !important;\n width: 1px !important;\n height: 1px !important;\n border: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n overflow: hidden !important;\n position: absolute !important;\n outline: 0 !important;\n left: 0px !important;\n top: 0px !important;\n}\n\n.select2-display-none {\n display: none;\n}\n\n.select2-measure-scrollbar {\n position: absolute;\n top: -10000px;\n left: -10000px;\n width: 100px;\n height: 100px;\n overflow: scroll;\n}\n\n/* Retina-ize icons */\n\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 2dppx) {\n .select2-search input,\n .select2-search-choice-close,\n .select2-container .select2-choice abbr,\n .select2-container .select2-choice .select2-arrow b {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) !important;\n background-repeat: no-repeat !important;\n background-size: 60px 40px !important;\n }\n\n .select2-search input {\n background-position: 100% -21px !important;\n }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/select2/select2.css\"],\"names\":[],\"mappings\":\"AAAA;;CAEC;AACD;IACI,SAAS;IACT,kBAAkB;IAClB,qBAAqB;IACrB,yBAAyB;IACzB,OAAO;KACP,eAAgB;IAChB,sBAAsB;AAC1B;;AAEA;;;;EAIE;;;;GAIC;EACD,8BAA8B,EAAE,WAAW;KACxC,2BAA2B,EAAE,YAAY;UACpC,sBAAsB,EAAE,SAAS;AAC3C;;AAEA;IACI,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;;IAElB,sBAAsB;IACtB,mBAAmB;IACnB,iBAAiB;IACjB,WAAW;IACX,qBAAqB;;IAErB,kBAAkB;;IAElB,4BAA4B;;IAE5B,2BAA2B;MACzB,yBAAyB;SACtB,sBAAsB;UACrB,qBAAqB;cACjB,iBAAiB;;IAE3B,sBAAsB;IACtB,6GAA6G;IAC7G,2EAA2E;IAC3E,wEAAwE;IACxE,wHAAwH;IACxH,4DAA4D;AAChE;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,yBAAyB;;IAEzB,0BAA0B;;IAE1B,6GAA6G;IAC7G,2EAA2E;IAC3E,wEAAwE;IACxE,kHAAkH;IAClH,+DAA+D;AACnE;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;IAClB,cAAc;IACd,gBAAgB;;IAEhB,mBAAmB;;IAEnB,uBAAuB;IACvB,WAAW;IACX,WAAW;AACf;;AAEA;IACI,iBAAiB;IACjB,eAAe;AACnB;;AAEA;IACI,aAAa;IACb,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,QAAQ;;IAER,cAAc;IACd,qBAAqB;;IAErB,SAAS;IACT,uEAAkD;IAClD,eAAe;IACf,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,gCAAgC;IAChC,eAAe;AACnB;;AAEA;IACI,SAAS;IACT,SAAS;IACT,UAAU;IACV,eAAe;IACf,OAAO;IACP,MAAM;IACN,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,UAAU;IACV,aAAa;IACb,mCAAmC;IACnC,sBAAsB;IACtB,wBAAwB;AAC5B;;AAEA;IACI,WAAW;IACX,gBAAgB;IAChB,kBAAkB;IAClB,aAAa;IACb,SAAS;;IAET,gBAAgB;IAChB,WAAW;IACX,sBAAsB;IACtB,aAAa;;IAEb,0BAA0B;;IAE1B,gDAAgD;YACxC,wCAAwC;AACpD;;AAEA;IACI,eAAe;IACf,0BAA0B;IAC1B,gBAAgB;;IAEhB,0BAA0B;;IAE1B,iDAAiD;YACzC,yCAAyC;AACrD;;AAEA;IACI,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,0BAA0B;IAC1B,WAAW;AACf;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,qBAAqB;IACrB,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,QAAQ;IACR,MAAM;;IAEN,2BAA2B;IAC3B,0BAA0B;;IAE1B,4BAA4B;;IAE5B,gBAAgB;IAChB,6GAA6G;IAC7G,2EAA2E;IAC3E,wEAAwE;IACxE,wHAAwH;IACxH,4DAA4D;AAChE;;AAEA;IACI,OAAO;IACP,WAAW;;IAEX,iBAAiB;IACjB,4BAA4B;IAC5B,0BAA0B;AAC9B;;AAEA;IACI,cAAc;IACd,WAAW;IACX,YAAY;IACZ,mEAA8C;AAClD;;AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,qBAAqB;IACrB,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,iBAAiB;IACjB,kBAAkB;;IAElB,kBAAkB;IAClB,cAAc;;IAEd,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,uBAAuB;IACvB,gBAAgB;IAChB,yBAAyB;IACzB,SAAS;;IAET,UAAU;IACV,uBAAuB;IACvB,cAAc;;IAEd,sBAAsB;IACtB,gBAAgB;;IAEhB,wBAAwB;YAChB,gBAAgB;;IAExB,6EAAwD;IACxD,yKAAoJ;IACpJ,oIAA+G;IAC/G,iIAA4G;IAC5G,4HAAuG;AAC3G;;AAEA;IACI,yBAAyB;;IAEzB,8EAAyD;IACzD,0KAAqJ;IACrJ,qIAAgH;IAChH,kIAA6G;IAC7G,6HAAwG;AAC5G;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,uEAA0D;IAC1D,mKAAsJ;IACtJ,8HAAiH;IACjH,2HAA8G;IAC9G,sHAAyG;AAC7G;;AAEA;;IAEI,yBAAyB;IACzB,aAAa;;IAEb,6CAA6C;YACrC,qCAAqC;AACjD;;AAEA;IACI,gCAAgC;IAChC,sCAAsC;YAC9B,8BAA8B;;IAEtC,4BAA4B;IAC5B,6BAA6B;;IAE7B,sBAAsB;IACtB,6GAA6G;IAC7G,2EAA2E;IAC3E,wEAAwE;IACxE,kHAAkH;IAClH,4DAA4D;AAChE;;AAEA;;IAEI,yBAAyB;IACzB,6BAA6B;;IAE7B,6GAA6G;IAC7G,wEAAwE;IACxE,qEAAqE;IACrE,kHAAkH;IAClH,+DAA+D;AACnE;;AAEA;IACI,uBAAuB;IACvB,iBAAiB;IACjB,YAAY;AAChB;AACA;IACI,kBAAkB;AACtB;;AAEA;IACI,8BAA8B;AAClC;;AAEA;IACI,8BAA8B;AAClC;;AAEA;IACI,SAAS;IACT,mBAAmB;IACnB,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,UAAU;IACV,kBAAkB;IAClB,UAAU;AACd;;AAEA,YAAY;AACZ;IACI,iBAAiB;IACjB,kBAAkB;IAClB,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,6CAA6C;AACjD;;AAEA;IACI,kBAAkB;IAClB,qBAAqB;AACzB;;AAEA;IACI,SAAS;IACT,eAAe;AACnB;;AAEA;IACI,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;AAC1B;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,oBAAoB;IACpB,SAAS;IACT,eAAe;;IAEf,eAAe;;IAEf,2BAA2B;MACzB,yBAAyB;SACtB,sBAAsB;UACrB,qBAAqB;cACjB,iBAAiB;AAC/B;;AAEA,gDAAgD,mBAAmB;AACnE,gDAAgD,mBAAmB;AACnE,gDAAgD,mBAAmB;AACnE,gDAAgD,mBAAmB;AACnE,gDAAgD,oBAAoB;AACpE,gDAAgD,oBAAoB;AACpE,gDAAgD,oBAAoB;;AAEpE;IACI,mBAAmB;IACnB,WAAW;AACf;;AAEA;IACI,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA;IACI,uBAAuB;AAC3B;;AAEA;IACI,gBAAgB;IAChB,WAAW;AACf;;AAEA;;;;IAII,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;;CAEC;AACD;IACI,WAAW;IACX,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;AACnB;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,eAAe;AACjB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,0EAA6D;AACjE;;AAEA;IACI,iCAAiC;AACrC;;AAEA;IACI,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA,oBAAoB;;AAEpB;IACI,yBAAyB;IACzB,sBAAsB;IACtB,sBAAsB;IACtB,eAAe;AACnB;;AAEA;IACI,yBAAyB;IACzB,sBAAsB;IACtB,cAAc;AAClB;;AAEA;IACI,aAAa;AACjB;;;AAGA,gBAAgB;;AAEhB;IACI,uBAAuB;IACvB,UAAU;IACV,SAAS;IACT,kBAAkB;IAClB,kBAAkB;;IAElB,sBAAsB;IACtB,YAAY;IACZ,gBAAgB;;IAEhB,sBAAsB;IACtB,uGAAuG;IACvG,iEAAiE;IACjE,8DAA8D;IAC9D,+DAA+D;AACnE;;AAEA;IACI,kBAAkB;AACtB;;AAEA;EACE,mCAAmC;AACrC;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,yBAAyB;IACzB,aAAa;;IAEb,6CAA6C;YACrC,qCAAqC;AACjD;AACA;IACI,WAAW;IACX,gBAAgB;AACpB;AACA;;IAEI,YAAY;AAChB;AACA;IACI,SAAS;IACT,UAAU;IACV,mBAAmB;AACvB;;AAEA;IACI,YAAY;IACZ,aAAa;;IAEb,uBAAuB;IACvB,eAAe;IACf,WAAW;IACX,UAAU;IACV,SAAS;IACT,wBAAwB;YAChB,gBAAgB;IACxB,kCAAkC;AACtC;;AAEA;IACI,kFAAqE;AACzE;;AAEA;IACI,sBAAsB;AAC1B;;AAEA;IACI,yBAAyB;IACzB,qBAAqB;IACrB,kBAAkB;;IAElB,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,yBAAyB;;IAEzB,kBAAkB;;IAElB,mEAAmE;YAC3D,2DAA2D;;IAEnE,4BAA4B;;IAE5B,2BAA2B;MACzB,yBAAyB;SACtB,sBAAsB;UACrB,qBAAqB;cACjB,iBAAiB;;IAE3B,yBAAyB;IACzB,kHAAkH;IAClH,gKAAgK;IAChK,gGAAgG;IAChG,6FAA6F;IAC7F,8FAA8F;AAClG;AACA;;IAEI,qBAAqB;IACrB,yBAAyB;AAC7B;AACA;IACI,eAAe;AACnB;AACA;IACI,mBAAmB;AACvB;;AAEA;IACI,cAAc;IACd,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,UAAU;IACV,QAAQ;;IAER,cAAc;IACd,aAAa;IACb,uEAAkD;AACtD;AACA;IACI,WAAW;IACX,SAAS;AACb;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,UAAU;IACV,UAAU;AACd;;AAEA;EACE,gCAAgC;AAClC;AACA;IACI,gCAAgC;AACpC;;AAEA,oBAAoB;AACpB;IACI,yBAAyB;IACzB,sBAAsB;IACtB,sBAAsB;IACtB,eAAe;AACnB;;AAEA;IACI,wBAAwB;IACxB,sBAAsB;IACtB,sBAAsB;IACtB,yBAAyB;AAC7B;;AAEA,8HAA8H,aAAa;IACvI,gBAAgB;AACpB;AACA,oBAAoB;;;AAGpB;;IAEI,0BAA0B;AAC9B;;AAEA;IACI,8BAA8B;IAC9B,qBAAqB;IACrB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,2BAA2B;IAC3B,6BAA6B;IAC7B,qBAAqB;IACrB,oBAAoB;IACpB,mBAAmB;AACvB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,YAAY;IACZ,aAAa;IACb,gBAAgB;AACpB;;AAEA,qBAAqB;;AAErB;IACI;;;;QAII,oEAAiD;QACjD,uCAAuC;QACvC,qCAAqC;IACzC;;IAEA;QACI,0CAA0C;IAC9C;AACJ\",\"sourcesContent\":[\"/*\\nVersion: @@ver@@ Timestamp: @@timestamp@@\\n*/\\n.select2-container {\\n margin: 0;\\n position: relative;\\n display: inline-block;\\n /* inline-block for ie7 */\\n zoom: 1;\\n *display: inline;\\n vertical-align: middle;\\n}\\n\\n.select2-container,\\n.select2-drop,\\n.select2-search,\\n.select2-search input {\\n /*\\n Force border-box so that % widths fit the parent\\n container without overlap because of margin/padding.\\n More Info : http://www.quirksmode.org/css/box.html\\n */\\n -webkit-box-sizing: border-box; /* webkit */\\n -moz-box-sizing: border-box; /* firefox */\\n box-sizing: border-box; /* css3 */\\n}\\n\\n.select2-container .select2-choice {\\n display: block;\\n height: 26px;\\n padding: 0 0 0 8px;\\n overflow: hidden;\\n position: relative;\\n\\n border: 1px solid #aaa;\\n white-space: nowrap;\\n line-height: 26px;\\n color: #444;\\n text-decoration: none;\\n\\n border-radius: 4px;\\n\\n background-clip: padding-box;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n background-color: #fff;\\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.5, #fff));\\n background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 50%);\\n background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 50%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ffffff', endColorstr = '#eeeeee', GradientType = 0);\\n background-image: linear-gradient(to top, #eee 0%, #fff 50%);\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-container .select2-choice {\\n padding: 0 8px 0 0;\\n}\\n\\n.select2-container.select2-drop-above .select2-choice {\\n border-bottom-color: #aaa;\\n\\n border-radius: 0 0 4px 4px;\\n\\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.9, #fff));\\n background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 90%);\\n background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 90%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);\\n background-image: linear-gradient(to bottom, #eee 0%, #fff 90%);\\n}\\n\\n.select2-container.select2-allowclear .select2-choice .select2-chosen {\\n margin-right: 42px;\\n}\\n\\n.select2-container .select2-choice > .select2-chosen {\\n margin-right: 26px;\\n display: block;\\n overflow: hidden;\\n\\n white-space: nowrap;\\n\\n text-overflow: ellipsis;\\n float: none;\\n width: auto;\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-container .select2-choice > .select2-chosen {\\n margin-left: 26px;\\n margin-right: 0;\\n}\\n\\n.select2-container .select2-choice abbr {\\n display: none;\\n width: 12px;\\n height: 12px;\\n position: absolute;\\n right: 24px;\\n top: 8px;\\n\\n font-size: 1px;\\n text-decoration: none;\\n\\n border: 0;\\n background: url('select2.png') right top no-repeat;\\n cursor: pointer;\\n outline: 0;\\n}\\n\\n.select2-container.select2-allowclear .select2-choice abbr {\\n display: inline-block;\\n}\\n\\n.select2-container .select2-choice abbr:hover {\\n background-position: right -11px;\\n cursor: pointer;\\n}\\n\\n.select2-drop-mask {\\n border: 0;\\n margin: 0;\\n padding: 0;\\n position: fixed;\\n left: 0;\\n top: 0;\\n min-height: 100%;\\n min-width: 100%;\\n height: auto;\\n width: auto;\\n opacity: 0;\\n z-index: 9998;\\n /* styles required for IE to work */\\n background-color: #fff;\\n filter: alpha(opacity=0);\\n}\\n\\n.select2-drop {\\n width: 100%;\\n margin-top: -1px;\\n position: absolute;\\n z-index: 9999;\\n top: 100%;\\n\\n background: #fff;\\n color: #000;\\n border: 1px solid #aaa;\\n border-top: 0;\\n\\n border-radius: 0 0 4px 4px;\\n\\n -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);\\n box-shadow: 0 4px 5px rgba(0, 0, 0, .15);\\n}\\n\\n.select2-drop.select2-drop-above {\\n margin-top: 1px;\\n border-top: 1px solid #aaa;\\n border-bottom: 0;\\n\\n border-radius: 4px 4px 0 0;\\n\\n -webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);\\n box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);\\n}\\n\\n.select2-drop-active {\\n border: 1px solid #5897fb;\\n border-top: none;\\n}\\n\\n.select2-drop.select2-drop-above.select2-drop-active {\\n border-top: 1px solid #5897fb;\\n}\\n\\n.select2-drop-auto-width {\\n border-top: 1px solid #aaa;\\n width: auto;\\n}\\n\\n.select2-drop-auto-width .select2-search {\\n padding-top: 4px;\\n}\\n\\n.select2-container .select2-choice .select2-arrow {\\n display: inline-block;\\n width: 18px;\\n height: 100%;\\n position: absolute;\\n right: 0;\\n top: 0;\\n\\n border-left: 1px solid #aaa;\\n border-radius: 0 4px 4px 0;\\n\\n background-clip: padding-box;\\n\\n background: #ccc;\\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));\\n background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);\\n background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc', GradientType = 0);\\n background-image: linear-gradient(to top, #ccc 0%, #eee 60%);\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-container .select2-choice .select2-arrow {\\n left: 0;\\n right: auto;\\n\\n border-left: none;\\n border-right: 1px solid #aaa;\\n border-radius: 4px 0 0 4px;\\n}\\n\\n.select2-container .select2-choice .select2-arrow b {\\n display: block;\\n width: 100%;\\n height: 100%;\\n background: url('select2.png') no-repeat 0 1px;\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-container .select2-choice .select2-arrow b {\\n background-position: 2px 1px;\\n}\\n\\n.select2-search {\\n display: inline-block;\\n width: 100%;\\n min-height: 26px;\\n margin: 0;\\n padding-left: 4px;\\n padding-right: 4px;\\n\\n position: relative;\\n z-index: 10000;\\n\\n white-space: nowrap;\\n}\\n\\n.select2-search input {\\n width: 100%;\\n height: auto !important;\\n min-height: 26px;\\n padding: 4px 20px 4px 5px;\\n margin: 0;\\n\\n outline: 0;\\n font-family: sans-serif;\\n font-size: 1em;\\n\\n border: 1px solid #aaa;\\n border-radius: 0;\\n\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n\\n background: #fff url('select2.png') no-repeat 100% -22px;\\n background: url('select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));\\n background: url('select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);\\n background: url('select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);\\n background: url('select2.png') no-repeat 100% -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-search input {\\n padding: 4px 5px 4px 20px;\\n\\n background: #fff url('select2.png') no-repeat -37px -22px;\\n background: url('select2.png') no-repeat -37px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));\\n background: url('select2.png') no-repeat -37px -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);\\n background: url('select2.png') no-repeat -37px -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);\\n background: url('select2.png') no-repeat -37px -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;\\n}\\n\\n.select2-drop.select2-drop-above .select2-search input {\\n margin-top: 4px;\\n}\\n\\n.select2-search input.select2-active {\\n background: #fff url('select2-spinner.gif') no-repeat 100%;\\n background: url('select2-spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));\\n background: url('select2-spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);\\n background: url('select2-spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);\\n background: url('select2-spinner.gif') no-repeat 100%, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;\\n}\\n\\n.select2-container-active .select2-choice,\\n.select2-container-active .select2-choices {\\n border: 1px solid #5897fb;\\n outline: none;\\n\\n -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);\\n box-shadow: 0 0 5px rgba(0, 0, 0, .3);\\n}\\n\\n.select2-dropdown-open .select2-choice {\\n border-bottom-color: transparent;\\n -webkit-box-shadow: 0 1px 0 #fff inset;\\n box-shadow: 0 1px 0 #fff inset;\\n\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0;\\n\\n background-color: #eee;\\n background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(0.5, #eee));\\n background-image: -webkit-linear-gradient(center bottom, #fff 0%, #eee 50%);\\n background-image: -moz-linear-gradient(center bottom, #fff 0%, #eee 50%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);\\n background-image: linear-gradient(to top, #fff 0%, #eee 50%);\\n}\\n\\n.select2-dropdown-open.select2-drop-above .select2-choice,\\n.select2-dropdown-open.select2-drop-above .select2-choices {\\n border: 1px solid #5897fb;\\n border-top-color: transparent;\\n\\n background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #eee));\\n background-image: -webkit-linear-gradient(center top, #fff 0%, #eee 50%);\\n background-image: -moz-linear-gradient(center top, #fff 0%, #eee 50%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);\\n background-image: linear-gradient(to bottom, #fff 0%, #eee 50%);\\n}\\n\\n.select2-dropdown-open .select2-choice .select2-arrow {\\n background: transparent;\\n border-left: none;\\n filter: none;\\n}\\nhtml[dir=\\\"rtl\\\"] .select2-dropdown-open .select2-choice .select2-arrow {\\n border-right: none;\\n}\\n\\n.select2-dropdown-open .select2-choice .select2-arrow b {\\n background-position: -18px 1px;\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-dropdown-open .select2-choice .select2-arrow b {\\n background-position: -16px 1px;\\n}\\n\\n.select2-hidden-accessible {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n/* results */\\n.select2-results {\\n max-height: 200px;\\n padding: 0 0 0 4px;\\n margin: 4px 4px 4px 0;\\n position: relative;\\n overflow-x: hidden;\\n overflow-y: auto;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-results {\\n padding: 0 4px 0 0;\\n margin: 4px 0 4px 4px;\\n}\\n\\n.select2-results ul.select2-result-sub {\\n margin: 0;\\n padding-left: 0;\\n}\\n\\n.select2-results li {\\n list-style: none;\\n display: list-item;\\n background-image: none;\\n}\\n\\n.select2-results li.select2-result-with-children > .select2-result-label {\\n font-weight: bold;\\n}\\n\\n.select2-results .select2-result-label {\\n padding: 3px 7px 4px;\\n margin: 0;\\n cursor: pointer;\\n\\n min-height: 1em;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.select2-results-dept-1 .select2-result-label { padding-left: 20px }\\n.select2-results-dept-2 .select2-result-label { padding-left: 40px }\\n.select2-results-dept-3 .select2-result-label { padding-left: 60px }\\n.select2-results-dept-4 .select2-result-label { padding-left: 80px }\\n.select2-results-dept-5 .select2-result-label { padding-left: 100px }\\n.select2-results-dept-6 .select2-result-label { padding-left: 110px }\\n.select2-results-dept-7 .select2-result-label { padding-left: 120px }\\n\\n.select2-results .select2-highlighted {\\n background: #3875d7;\\n color: #fff;\\n}\\n\\n.select2-results li em {\\n background: #feffde;\\n font-style: normal;\\n}\\n\\n.select2-results .select2-highlighted em {\\n background: transparent;\\n}\\n\\n.select2-results .select2-highlighted ul {\\n background: #fff;\\n color: #000;\\n}\\n\\n.select2-results .select2-no-results,\\n.select2-results .select2-searching,\\n.select2-results .select2-ajax-error,\\n.select2-results .select2-selection-limit {\\n background: #f4f4f4;\\n display: list-item;\\n padding-left: 5px;\\n}\\n\\n/*\\ndisabled look for disabled choices in the results dropdown\\n*/\\n.select2-results .select2-disabled.select2-highlighted {\\n color: #666;\\n background: #f4f4f4;\\n display: list-item;\\n cursor: default;\\n}\\n.select2-results .select2-disabled {\\n background: #f4f4f4;\\n display: list-item;\\n cursor: default;\\n}\\n\\n.select2-results .select2-selected {\\n display: none;\\n}\\n\\n.select2-more-results.select2-active {\\n background: #f4f4f4 url('select2-spinner.gif') no-repeat 100%;\\n}\\n\\n.select2-results .select2-ajax-error {\\n background: rgba(255, 50, 50, .2);\\n}\\n\\n.select2-more-results {\\n background: #f4f4f4;\\n display: list-item;\\n}\\n\\n/* disabled styles */\\n\\n.select2-container.select2-container-disabled .select2-choice {\\n background-color: #f4f4f4;\\n background-image: none;\\n border: 1px solid #ddd;\\n cursor: default;\\n}\\n\\n.select2-container.select2-container-disabled .select2-choice .select2-arrow {\\n background-color: #f4f4f4;\\n background-image: none;\\n border-left: 0;\\n}\\n\\n.select2-container.select2-container-disabled .select2-choice abbr {\\n display: none;\\n}\\n\\n\\n/* multiselect */\\n\\n.select2-container-multi .select2-choices {\\n height: auto !important;\\n height: 1%;\\n margin: 0;\\n padding: 0 5px 0 0;\\n position: relative;\\n\\n border: 1px solid #aaa;\\n cursor: text;\\n overflow: hidden;\\n\\n background-color: #fff;\\n background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eee), color-stop(15%, #fff));\\n background-image: -webkit-linear-gradient(top, #eee 1%, #fff 15%);\\n background-image: -moz-linear-gradient(top, #eee 1%, #fff 15%);\\n background-image: linear-gradient(to bottom, #eee 1%, #fff 15%);\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-container-multi .select2-choices {\\n padding: 0 0 0 5px;\\n}\\n\\n.select2-locked {\\n padding: 3px 5px 3px 5px !important;\\n}\\n\\n.select2-container-multi .select2-choices {\\n min-height: 26px;\\n}\\n\\n.select2-container-multi.select2-container-active .select2-choices {\\n border: 1px solid #5897fb;\\n outline: none;\\n\\n -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);\\n box-shadow: 0 0 5px rgba(0, 0, 0, .3);\\n}\\n.select2-container-multi .select2-choices li {\\n float: left;\\n list-style: none;\\n}\\nhtml[dir=\\\"rtl\\\"] .select2-container-multi .select2-choices li\\n{\\n float: right;\\n}\\n.select2-container-multi .select2-choices .select2-search-field {\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n\\n.select2-container-multi .select2-choices .select2-search-field input {\\n padding: 5px;\\n margin: 1px 0;\\n\\n font-family: sans-serif;\\n font-size: 100%;\\n color: #666;\\n outline: 0;\\n border: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n background: transparent !important;\\n}\\n\\n.select2-container-multi .select2-choices .select2-search-field input.select2-active {\\n background: #fff url('select2-spinner.gif') no-repeat 100% !important;\\n}\\n\\n.select2-default {\\n color: #999 !important;\\n}\\n\\n.select2-container-multi .select2-choices .select2-search-choice {\\n padding: 3px 5px 3px 18px;\\n margin: 3px 0 3px 5px;\\n position: relative;\\n\\n line-height: 13px;\\n color: #333;\\n cursor: default;\\n border: 1px solid #aaaaaa;\\n\\n border-radius: 3px;\\n\\n -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);\\n box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);\\n\\n background-clip: padding-box;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n background-color: #e4e4e4;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);\\n background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));\\n background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);\\n background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);\\n background-image: linear-gradient(to bottom, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);\\n}\\nhtml[dir=\\\"rtl\\\"] .select2-container-multi .select2-choices .select2-search-choice\\n{\\n margin: 3px 5px 3px 0;\\n padding: 3px 18px 3px 5px;\\n}\\n.select2-container-multi .select2-choices .select2-search-choice .select2-chosen {\\n cursor: default;\\n}\\n.select2-container-multi .select2-choices .select2-search-choice-focus {\\n background: #d4d4d4;\\n}\\n\\n.select2-search-choice-close {\\n display: block;\\n width: 12px;\\n height: 13px;\\n position: absolute;\\n right: 3px;\\n top: 4px;\\n\\n font-size: 1px;\\n outline: none;\\n background: url('select2.png') right top no-repeat;\\n}\\nhtml[dir=\\\"rtl\\\"] .select2-search-choice-close {\\n right: auto;\\n left: 3px;\\n}\\n\\n.select2-container-multi .select2-search-choice-close {\\n left: 3px;\\n}\\n\\nhtml[dir=\\\"rtl\\\"] .select2-container-multi .select2-search-choice-close {\\n left: auto;\\n right: 2px;\\n}\\n\\n.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {\\n background-position: right -11px;\\n}\\n.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {\\n background-position: right -11px;\\n}\\n\\n/* disabled styles */\\n.select2-container-multi.select2-container-disabled .select2-choices {\\n background-color: #f4f4f4;\\n background-image: none;\\n border: 1px solid #ddd;\\n cursor: default;\\n}\\n\\n.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {\\n padding: 3px 5px 3px 5px;\\n border: 1px solid #ddd;\\n background-image: none;\\n background-color: #f4f4f4;\\n}\\n\\n.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close { display: none;\\n background: none;\\n}\\n/* end multiselect */\\n\\n\\n.select2-result-selectable .select2-match,\\n.select2-result-unselectable .select2-match {\\n text-decoration: underline;\\n}\\n\\n.select2-offscreen, .select2-offscreen:focus {\\n clip: rect(0 0 0 0) !important;\\n width: 1px !important;\\n height: 1px !important;\\n border: 0 !important;\\n margin: 0 !important;\\n padding: 0 !important;\\n overflow: hidden !important;\\n position: absolute !important;\\n outline: 0 !important;\\n left: 0px !important;\\n top: 0px !important;\\n}\\n\\n.select2-display-none {\\n display: none;\\n}\\n\\n.select2-measure-scrollbar {\\n position: absolute;\\n top: -10000px;\\n left: -10000px;\\n width: 100px;\\n height: 100px;\\n overflow: scroll;\\n}\\n\\n/* Retina-ize icons */\\n\\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 2dppx) {\\n .select2-search input,\\n .select2-search-choice-close,\\n .select2-container .select2-choice abbr,\\n .select2-container .select2-choice .select2-arrow b {\\n background-image: url('select2x2.png') !important;\\n background-repeat: no-repeat !important;\\n background-size: 60px 40px !important;\\n }\\n\\n .select2-search input {\\n background-position: 100% -21px !important;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 27444,\n\t\"./ar-sa.js\": 27444,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.qr-login__content{display:flex;flex-direction:column;align-items:center;gap:var(--default-grid-baseline)}.qr-login__description{text-align:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AccountMenu/AccountQRLoginDialog.vue\"],\"names\":[],\"mappings\":\"AACA,mBACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,gCAAA,CAGD,uBACC,iBAAA\",\"sourcesContent\":[\"\\n.qr-login__content {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n\\tgap: var(--default-grid-baseline);\\n}\\n\\n.qr-login__description {\\n\\ttext-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","'use strict';\nvar has = require('../internals/map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\nvar log = Math.log;\n\nvar FORCED = !($atanh && 1 / $atanh(-0) < 0);\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n atanh: function atanh(x) {\n var n = +x;\n return n === 0 ? n : log((1 + n) / (1 - n)) / 2;\n }\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(/./.exec);\nvar numberToString = uncurryThis(1.1.toString);\nvar toUpperCase = uncurryThis(''.toUpperCase);\n\nvar raw = /[\\w*+\\-./@]/;\n\nvar hex = function (code, length) {\n var result = numberToString(code, 16);\n while (result.length < length) result = '0' + result;\n return result;\n};\n\n// `escape` method\n// https://tc39.es/ecma262/#sec-escape-string\n$({ global: true }, {\n escape: function escape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, code;\n while (index < length) {\n chr = charAt(str, index++);\n if (exec(raw, chr)) {\n result += chr;\n } else {\n code = charCodeAt(chr, 0);\n if (code < 256) {\n result += '%' + hex(code, 2);\n } else {\n result += '%u' + toUpperCase(hex(code, 4));\n }\n }\n } return result;\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-async-iterator-helpers\n// https://github.com/tc39/proposal-array-from-async\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar createMethod = function (TYPE) {\n var IS_TO_ARRAY = TYPE === 0;\n var IS_FOR_EACH = TYPE === 1;\n var IS_EVERY = TYPE === 2;\n var IS_SOME = TYPE === 3;\n return function (object, fn, target) {\n anObject(object);\n var MAPPING = fn !== undefined;\n if (MAPPING || !IS_TO_ARRAY) aCallable(fn);\n var record = getIteratorDirect(object);\n var Promise = getBuiltIn('Promise');\n var iterator = record.iterator;\n var next = record.next;\n var counter = 0;\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n if (MAPPING) try {\n doesNotExceedSafeInteger(counter);\n } catch (error5) { ifAbruptCloseAsyncIterator(error5); }\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n if (IS_TO_ARRAY) {\n setArrayLength(target, counter);\n resolve(target);\n } else resolve(IS_SOME ? false : IS_EVERY || undefined);\n } else {\n var value = step.value;\n try {\n if (MAPPING) {\n var result = fn(value, counter);\n\n var handler = function ($result) {\n if (IS_FOR_EACH) {\n loop();\n } else if (IS_EVERY) {\n $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);\n } else if (IS_TO_ARRAY) {\n try {\n createProperty(target, counter++, $result);\n loop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n } else {\n $result ? closeAsyncIteration(iterator, resolve, IS_SOME || value, reject) : loop();\n }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } else {\n createProperty(target, counter++, value);\n loop();\n }\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n };\n};\n\nmodule.exports = {\n // `AsyncIterator.prototype.toArray` / `Array.fromAsync` methods\n toArray: createMethod(0),\n // `AsyncIterator.prototype.forEach` method\n forEach: createMethod(1),\n // `AsyncIterator.prototype.every` method\n every: createMethod(2),\n // `AsyncIterator.prototype.some` method\n some: createMethod(3),\n // `AsyncIterator.prototype.find` method\n find: createMethod(4)\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var A = new (getTypedArrayConstructor(O))(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.data-view.constructor');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n trimEnd: trimEnd\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n }\n});\n","'use strict';\n// Should get iterator record of a set-like object before cloning this\n// https://bugs.webkit.org/show_bug.cgi?id=289430\nmodule.exports = function (METHOD_NAME) {\n try {\n // eslint-disable-next-line es/no-set -- needed for test\n var baseSet = new Set();\n var setLike = {\n size: 0,\n has: function () { return true; },\n keys: function () {\n // eslint-disable-next-line es/no-object-defineproperty -- needed for test\n return Object.defineProperty({}, 'next', {\n get: function () {\n baseSet.clear();\n baseSet.add(4);\n return function () {\n return { done: true };\n };\n }\n });\n }\n };\n var result = baseSet[METHOD_NAME](setLike);\n\n return result.size === 1 && result.values().next().value === 4;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","module.exports = require('events').EventEmitter;\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n // eslint-disable-next-line no-console\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = globalThis.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `String.prototype.isWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.iswellformed\n$({ target: 'String', proto: true }, {\n isWellFormed: function isWellFormed() {\n var S = toString(requireObjectCoercible(this));\n var length = S.length;\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) continue;\n // unpaired surrogate\n if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false;\n } return true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar i2c = require('../internals/base64-map').i2c;\n\nvar $btoa = getBuiltIn('btoa');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\nvar BASIC = !!$btoa && !fails(function () {\n return $btoa('hi') !== 'aGk=';\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n $btoa();\n});\n\nvar WRONG_ARG_CONVERSION = BASIC && fails(function () {\n return $btoa(null) !== 'bnVsbA==';\n});\n\nvar WRONG_ARITY = BASIC && $btoa.length !== 1;\n\n// `btoa` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa\n$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, {\n btoa: function btoa(data) {\n validateArgumentsLength(arguments.length, 1);\n // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n if (BASIC) return call($btoa, globalThis, toString(data));\n var string = toString(data);\n var output = '';\n var position = 0;\n var map = i2c;\n var block, charCode;\n while (charAt(string, position) || (map = '=', position % 1)) {\n charCode = charCodeAt(string, position += 3 / 4);\n if (charCode > 0xFF) {\n throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');\n }\n block = block << 8 | charCode;\n output += charAt(map, 63 & block >> 8 - position % 1 * 8);\n } return output;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.Uint8Array;\nvar SyntaxError = globalThis.SyntaxError;\nvar parseInt = globalThis.parseInt;\nvar min = Math.min;\nvar NOT_HEX = /[^\\da-f]/i;\nvar exec = uncurryThis(NOT_HEX.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (string, into) {\n var stringLength = string.length;\n if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');\n var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;\n var bytes = into || new Uint8Array(maxLength);\n var read = 0;\n var written = 0;\n while (written < maxLength) {\n var hexits = stringSlice(string, read, read += 2);\n if (exec(NOT_HEX, hexits)) throw new SyntaxError('String should only contain hex characters');\n bytes[written++] = parseInt(hexits, 16);\n }\n return { bytes: bytes, read: read };\n};\n","'use strict';\n/* eslint-disable no-undef, no-useless-call, sonarjs/no-reference-error -- required for testing */\n/* eslint-disable es/no-legacy-object-prototype-accessor-methods -- required for testing */\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n // This feature detection crashes old WebKit\n // https://github.com/zloirock/core-js/issues/232\n if (WEBKIT && WEBKIT < 535) return;\n var key = Math.random();\n // In FF throws only define methods\n __defineSetter__.call(null, key, function () { /* empty */ });\n delete globalThis[key];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, thisIsBigIntArray, value, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n thisIsBigIntArray = isBigIntArray(result);\n for (i = 0; length > i; i++) {\n value = mapping ? mapfn(O[i], i) : O[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n return result;\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-left');\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, {\n trimStart: trimStart\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar sync = require('./sync');\nvar toBuffer = require('./to-buffer');\n\nvar ZERO_BUF;\nvar subtle = global.crypto && global.crypto.subtle;\nvar toBrowser = {\n\tsha: 'SHA-1',\n\t'sha-1': 'SHA-1',\n\tsha1: 'SHA-1',\n\tsha256: 'SHA-256',\n\t'sha-256': 'SHA-256',\n\tsha384: 'SHA-384',\n\t'sha-384': 'SHA-384',\n\t'sha-512': 'SHA-512',\n\tsha512: 'SHA-512'\n};\nvar checks = [];\nvar nextTick;\nfunction getNextTick() {\n\tif (nextTick) {\n\t\treturn nextTick;\n\t}\n\tif (global.process && global.process.nextTick) {\n\t\tnextTick = global.process.nextTick;\n\t} else if (global.queueMicrotask) {\n\t\tnextTick = global.queueMicrotask;\n\t} else if (global.setImmediate) {\n\t\tnextTick = global.setImmediate;\n\t} else {\n\t\tnextTick = global.setTimeout;\n\t}\n\treturn nextTick;\n}\nfunction browserPbkdf2(password, salt, iterations, length, algo) {\n\treturn subtle.importKey('raw', password, { name: 'PBKDF2' }, false, ['deriveBits']).then(function (key) {\n\t\treturn subtle.deriveBits({\n\t\t\tname: 'PBKDF2',\n\t\t\tsalt: salt,\n\t\t\titerations: iterations,\n\t\t\thash: {\n\t\t\t\tname: algo\n\t\t\t}\n\t\t}, key, length << 3);\n\t}).then(function (res) {\n\t\treturn Buffer.from(res);\n\t});\n}\nfunction checkNative(algo) {\n\tif (global.process && !global.process.browser) {\n\t\treturn Promise.resolve(false);\n\t}\n\tif (!subtle || !subtle.importKey || !subtle.deriveBits) {\n\t\treturn Promise.resolve(false);\n\t}\n\tif (checks[algo] !== undefined) {\n\t\treturn checks[algo];\n\t}\n\tZERO_BUF = ZERO_BUF || Buffer.alloc(8);\n\tvar prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n\t\t.then(\n\t\t\tfunction () { return true; },\n\t\t\tfunction () { return false; }\n\t\t);\n\tchecks[algo] = prom;\n\treturn prom;\n}\n\nfunction resolvePromise(promise, callback) {\n\tpromise.then(function (out) {\n\t\tgetNextTick()(function () {\n\t\t\tcallback(null, out);\n\t\t});\n\t}, function (e) {\n\t\tgetNextTick()(function () {\n\t\t\tcallback(e);\n\t\t});\n\t});\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n\tif (typeof digest === 'function') {\n\t\tcallback = digest;\n\t\tdigest = undefined;\n\t}\n\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\tif (typeof callback !== 'function') {\n\t\tthrow new Error('No callback provided to pbkdf2');\n\t}\n\n\tdigest = digest || 'sha1';\n\tvar algo = toBrowser[digest.toLowerCase()];\n\n\tif (!algo || typeof global.Promise !== 'function') {\n\t\tgetNextTick()(function () {\n\t\t\tvar out;\n\t\t\ttry {\n\t\t\t\tout = sync(password, salt, iterations, keylen, digest);\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcallback(null, out);\n\t\t});\n\t\treturn;\n\t}\n\n\tresolvePromise(checkNative(algo).then(function (resp) {\n\t\tif (resp) {\n\t\t\treturn browserPbkdf2(password, salt, iterations, keylen, algo);\n\t\t}\n\n\t\treturn sync(password, salt, iterations, keylen, digest);\n\t}), callback);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE === 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var index = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n var Constructor = globalThis[CONSTRUCTOR];\n var Prototype = Constructor && Constructor.prototype;\n return Prototype && Prototype[METHOD];\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n // eslint-disable-next-line es/no-array-prototype-foreach -- safe\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","/*\nCopyright 2012 Igor Vaynberg\n\nVersion: @@ver@@ Timestamp: @@timestamp@@\n\nThis software is licensed under the Apache License, Version 2.0 (the \"Apache License\") or the GNU\nGeneral Public License version 2 (the \"GPL License\"). You may choose either license to govern your\nuse of this software only upon the condition that you accept all of the terms of either the Apache\nLicense or the GPL License.\n\nYou may obtain a copy of the Apache License and the GPL License at:\n\n http://www.apache.org/licenses/LICENSE-2.0\n http://www.gnu.org/licenses/gpl-2.0.html\n\nUnless required by applicable law or agreed to in writing, software distributed under the\nApache License or the GPL License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the Apache License and the GPL License for\nthe specific language governing permissions and limitations under the Apache License and the GPL License.\n*/\n(function ($) {\n if(typeof $.fn.each2 == \"undefined\") {\n $.extend($.fn, {\n /*\n * 4-10 times faster .each replacement\n * use it carefully, as it overrides jQuery context of element on each iteration\n */\n each2 : function (c) {\n var j = $([0]), i = -1, l = this.length;\n while (\n ++i < l\n && (j.context = j[0] = this[i])\n && c.call(j[0], i, j) !== false //\"this\"=DOM, i=index, j=jQuery object\n );\n return this;\n }\n });\n }\n})(jQuery);\n\n(function ($, undefined) {\n \"use strict\";\n /*global document, window, jQuery, console */\n\n if (window.Select2 !== undefined) {\n return;\n }\n\n var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer,\n lastMousePosition={x:0,y:0}, $document, scrollBarDimensions,\n\n KEY = {\n TAB: 9,\n ENTER: 13,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n HOME: 36,\n END: 35,\n BACKSPACE: 8,\n DELETE: 46,\n isArrow: function (k) {\n k = k.which ? k.which : k;\n switch (k) {\n case KEY.LEFT:\n case KEY.RIGHT:\n case KEY.UP:\n case KEY.DOWN:\n return true;\n }\n return false;\n },\n isControl: function (e) {\n var k = e.which;\n switch (k) {\n case KEY.SHIFT:\n case KEY.CTRL:\n case KEY.ALT:\n return true;\n }\n\n if (e.metaKey) return true;\n\n return false;\n },\n isFunctionKey: function (k) {\n k = k.which ? k.which : k;\n return k >= 112 && k <= 123;\n }\n },\n MEASURE_SCROLLBAR_TEMPLATE = \"
\",\n\n DIACRITICS = {\"\\u24B6\":\"A\",\"\\uFF21\":\"A\",\"\\u00C0\":\"A\",\"\\u00C1\":\"A\",\"\\u00C2\":\"A\",\"\\u1EA6\":\"A\",\"\\u1EA4\":\"A\",\"\\u1EAA\":\"A\",\"\\u1EA8\":\"A\",\"\\u00C3\":\"A\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u1EB0\":\"A\",\"\\u1EAE\":\"A\",\"\\u1EB4\":\"A\",\"\\u1EB2\":\"A\",\"\\u0226\":\"A\",\"\\u01E0\":\"A\",\"\\u00C4\":\"A\",\"\\u01DE\":\"A\",\"\\u1EA2\":\"A\",\"\\u00C5\":\"A\",\"\\u01FA\":\"A\",\"\\u01CD\":\"A\",\"\\u0200\":\"A\",\"\\u0202\":\"A\",\"\\u1EA0\":\"A\",\"\\u1EAC\":\"A\",\"\\u1EB6\":\"A\",\"\\u1E00\":\"A\",\"\\u0104\":\"A\",\"\\u023A\":\"A\",\"\\u2C6F\":\"A\",\"\\uA732\":\"AA\",\"\\u00C6\":\"AE\",\"\\u01FC\":\"AE\",\"\\u01E2\":\"AE\",\"\\uA734\":\"AO\",\"\\uA736\":\"AU\",\"\\uA738\":\"AV\",\"\\uA73A\":\"AV\",\"\\uA73C\":\"AY\",\"\\u24B7\":\"B\",\"\\uFF22\":\"B\",\"\\u1E02\":\"B\",\"\\u1E04\":\"B\",\"\\u1E06\":\"B\",\"\\u0243\":\"B\",\"\\u0182\":\"B\",\"\\u0181\":\"B\",\"\\u24B8\":\"C\",\"\\uFF23\":\"C\",\"\\u0106\":\"C\",\"\\u0108\":\"C\",\"\\u010A\":\"C\",\"\\u010C\":\"C\",\"\\u00C7\":\"C\",\"\\u1E08\":\"C\",\"\\u0187\":\"C\",\"\\u023B\":\"C\",\"\\uA73E\":\"C\",\"\\u24B9\":\"D\",\"\\uFF24\":\"D\",\"\\u1E0A\":\"D\",\"\\u010E\":\"D\",\"\\u1E0C\":\"D\",\"\\u1E10\":\"D\",\"\\u1E12\":\"D\",\"\\u1E0E\":\"D\",\"\\u0110\":\"D\",\"\\u018B\":\"D\",\"\\u018A\":\"D\",\"\\u0189\":\"D\",\"\\uA779\":\"D\",\"\\u01F1\":\"DZ\",\"\\u01C4\":\"DZ\",\"\\u01F2\":\"Dz\",\"\\u01C5\":\"Dz\",\"\\u24BA\":\"E\",\"\\uFF25\":\"E\",\"\\u00C8\":\"E\",\"\\u00C9\":\"E\",\"\\u00CA\":\"E\",\"\\u1EC0\":\"E\",\"\\u1EBE\":\"E\",\"\\u1EC4\":\"E\",\"\\u1EC2\":\"E\",\"\\u1EBC\":\"E\",\"\\u0112\":\"E\",\"\\u1E14\":\"E\",\"\\u1E16\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u00CB\":\"E\",\"\\u1EBA\":\"E\",\"\\u011A\":\"E\",\"\\u0204\":\"E\",\"\\u0206\":\"E\",\"\\u1EB8\":\"E\",\"\\u1EC6\":\"E\",\"\\u0228\":\"E\",\"\\u1E1C\":\"E\",\"\\u0118\":\"E\",\"\\u1E18\":\"E\",\"\\u1E1A\":\"E\",\"\\u0190\":\"E\",\"\\u018E\":\"E\",\"\\u24BB\":\"F\",\"\\uFF26\":\"F\",\"\\u1E1E\":\"F\",\"\\u0191\":\"F\",\"\\uA77B\":\"F\",\"\\u24BC\":\"G\",\"\\uFF27\":\"G\",\"\\u01F4\":\"G\",\"\\u011C\":\"G\",\"\\u1E20\":\"G\",\"\\u011E\":\"G\",\"\\u0120\":\"G\",\"\\u01E6\":\"G\",\"\\u0122\":\"G\",\"\\u01E4\":\"G\",\"\\u0193\":\"G\",\"\\uA7A0\":\"G\",\"\\uA77D\":\"G\",\"\\uA77E\":\"G\",\"\\u24BD\":\"H\",\"\\uFF28\":\"H\",\"\\u0124\":\"H\",\"\\u1E22\":\"H\",\"\\u1E26\":\"H\",\"\\u021E\":\"H\",\"\\u1E24\":\"H\",\"\\u1E28\":\"H\",\"\\u1E2A\":\"H\",\"\\u0126\":\"H\",\"\\u2C67\":\"H\",\"\\u2C75\":\"H\",\"\\uA78D\":\"H\",\"\\u24BE\":\"I\",\"\\uFF29\":\"I\",\"\\u00CC\":\"I\",\"\\u00CD\":\"I\",\"\\u00CE\":\"I\",\"\\u0128\":\"I\",\"\\u012A\":\"I\",\"\\u012C\":\"I\",\"\\u0130\":\"I\",\"\\u00CF\":\"I\",\"\\u1E2E\":\"I\",\"\\u1EC8\":\"I\",\"\\u01CF\":\"I\",\"\\u0208\":\"I\",\"\\u020A\":\"I\",\"\\u1ECA\":\"I\",\"\\u012E\":\"I\",\"\\u1E2C\":\"I\",\"\\u0197\":\"I\",\"\\u24BF\":\"J\",\"\\uFF2A\":\"J\",\"\\u0134\":\"J\",\"\\u0248\":\"J\",\"\\u24C0\":\"K\",\"\\uFF2B\":\"K\",\"\\u1E30\":\"K\",\"\\u01E8\":\"K\",\"\\u1E32\":\"K\",\"\\u0136\":\"K\",\"\\u1E34\":\"K\",\"\\u0198\":\"K\",\"\\u2C69\":\"K\",\"\\uA740\":\"K\",\"\\uA742\":\"K\",\"\\uA744\":\"K\",\"\\uA7A2\":\"K\",\"\\u24C1\":\"L\",\"\\uFF2C\":\"L\",\"\\u013F\":\"L\",\"\\u0139\":\"L\",\"\\u013D\":\"L\",\"\\u1E36\":\"L\",\"\\u1E38\":\"L\",\"\\u013B\":\"L\",\"\\u1E3C\":\"L\",\"\\u1E3A\":\"L\",\"\\u0141\":\"L\",\"\\u023D\":\"L\",\"\\u2C62\":\"L\",\"\\u2C60\":\"L\",\"\\uA748\":\"L\",\"\\uA746\":\"L\",\"\\uA780\":\"L\",\"\\u01C7\":\"LJ\",\"\\u01C8\":\"Lj\",\"\\u24C2\":\"M\",\"\\uFF2D\":\"M\",\"\\u1E3E\":\"M\",\"\\u1E40\":\"M\",\"\\u1E42\":\"M\",\"\\u2C6E\":\"M\",\"\\u019C\":\"M\",\"\\u24C3\":\"N\",\"\\uFF2E\":\"N\",\"\\u01F8\":\"N\",\"\\u0143\":\"N\",\"\\u00D1\":\"N\",\"\\u1E44\":\"N\",\"\\u0147\":\"N\",\"\\u1E46\":\"N\",\"\\u0145\":\"N\",\"\\u1E4A\":\"N\",\"\\u1E48\":\"N\",\"\\u0220\":\"N\",\"\\u019D\":\"N\",\"\\uA790\":\"N\",\"\\uA7A4\":\"N\",\"\\u01CA\":\"NJ\",\"\\u01CB\":\"Nj\",\"\\u24C4\":\"O\",\"\\uFF2F\":\"O\",\"\\u00D2\":\"O\",\"\\u00D3\":\"O\",\"\\u00D4\":\"O\",\"\\u1ED2\":\"O\",\"\\u1ED0\":\"O\",\"\\u1ED6\":\"O\",\"\\u1ED4\":\"O\",\"\\u00D5\":\"O\",\"\\u1E4C\":\"O\",\"\\u022C\":\"O\",\"\\u1E4E\":\"O\",\"\\u014C\":\"O\",\"\\u1E50\":\"O\",\"\\u1E52\":\"O\",\"\\u014E\":\"O\",\"\\u022E\":\"O\",\"\\u0230\":\"O\",\"\\u00D6\":\"O\",\"\\u022A\":\"O\",\"\\u1ECE\":\"O\",\"\\u0150\":\"O\",\"\\u01D1\":\"O\",\"\\u020C\":\"O\",\"\\u020E\":\"O\",\"\\u01A0\":\"O\",\"\\u1EDC\":\"O\",\"\\u1EDA\":\"O\",\"\\u1EE0\":\"O\",\"\\u1EDE\":\"O\",\"\\u1EE2\":\"O\",\"\\u1ECC\":\"O\",\"\\u1ED8\":\"O\",\"\\u01EA\":\"O\",\"\\u01EC\":\"O\",\"\\u00D8\":\"O\",\"\\u01FE\":\"O\",\"\\u0186\":\"O\",\"\\u019F\":\"O\",\"\\uA74A\":\"O\",\"\\uA74C\":\"O\",\"\\u01A2\":\"OI\",\"\\uA74E\":\"OO\",\"\\u0222\":\"OU\",\"\\u24C5\":\"P\",\"\\uFF30\":\"P\",\"\\u1E54\":\"P\",\"\\u1E56\":\"P\",\"\\u01A4\":\"P\",\"\\u2C63\":\"P\",\"\\uA750\":\"P\",\"\\uA752\":\"P\",\"\\uA754\":\"P\",\"\\u24C6\":\"Q\",\"\\uFF31\":\"Q\",\"\\uA756\":\"Q\",\"\\uA758\":\"Q\",\"\\u024A\":\"Q\",\"\\u24C7\":\"R\",\"\\uFF32\":\"R\",\"\\u0154\":\"R\",\"\\u1E58\":\"R\",\"\\u0158\":\"R\",\"\\u0210\":\"R\",\"\\u0212\":\"R\",\"\\u1E5A\":\"R\",\"\\u1E5C\":\"R\",\"\\u0156\":\"R\",\"\\u1E5E\":\"R\",\"\\u024C\":\"R\",\"\\u2C64\":\"R\",\"\\uA75A\":\"R\",\"\\uA7A6\":\"R\",\"\\uA782\":\"R\",\"\\u24C8\":\"S\",\"\\uFF33\":\"S\",\"\\u1E9E\":\"S\",\"\\u015A\":\"S\",\"\\u1E64\":\"S\",\"\\u015C\":\"S\",\"\\u1E60\":\"S\",\"\\u0160\":\"S\",\"\\u1E66\":\"S\",\"\\u1E62\":\"S\",\"\\u1E68\":\"S\",\"\\u0218\":\"S\",\"\\u015E\":\"S\",\"\\u2C7E\":\"S\",\"\\uA7A8\":\"S\",\"\\uA784\":\"S\",\"\\u24C9\":\"T\",\"\\uFF34\":\"T\",\"\\u1E6A\":\"T\",\"\\u0164\":\"T\",\"\\u1E6C\":\"T\",\"\\u021A\":\"T\",\"\\u0162\":\"T\",\"\\u1E70\":\"T\",\"\\u1E6E\":\"T\",\"\\u0166\":\"T\",\"\\u01AC\":\"T\",\"\\u01AE\":\"T\",\"\\u023E\":\"T\",\"\\uA786\":\"T\",\"\\uA728\":\"TZ\",\"\\u24CA\":\"U\",\"\\uFF35\":\"U\",\"\\u00D9\":\"U\",\"\\u00DA\":\"U\",\"\\u00DB\":\"U\",\"\\u0168\":\"U\",\"\\u1E78\":\"U\",\"\\u016A\":\"U\",\"\\u1E7A\":\"U\",\"\\u016C\":\"U\",\"\\u00DC\":\"U\",\"\\u01DB\":\"U\",\"\\u01D7\":\"U\",\"\\u01D5\":\"U\",\"\\u01D9\":\"U\",\"\\u1EE6\":\"U\",\"\\u016E\":\"U\",\"\\u0170\":\"U\",\"\\u01D3\":\"U\",\"\\u0214\":\"U\",\"\\u0216\":\"U\",\"\\u01AF\":\"U\",\"\\u1EEA\":\"U\",\"\\u1EE8\":\"U\",\"\\u1EEE\":\"U\",\"\\u1EEC\":\"U\",\"\\u1EF0\":\"U\",\"\\u1EE4\":\"U\",\"\\u1E72\":\"U\",\"\\u0172\":\"U\",\"\\u1E76\":\"U\",\"\\u1E74\":\"U\",\"\\u0244\":\"U\",\"\\u24CB\":\"V\",\"\\uFF36\":\"V\",\"\\u1E7C\":\"V\",\"\\u1E7E\":\"V\",\"\\u01B2\":\"V\",\"\\uA75E\":\"V\",\"\\u0245\":\"V\",\"\\uA760\":\"VY\",\"\\u24CC\":\"W\",\"\\uFF37\":\"W\",\"\\u1E80\":\"W\",\"\\u1E82\":\"W\",\"\\u0174\":\"W\",\"\\u1E86\":\"W\",\"\\u1E84\":\"W\",\"\\u1E88\":\"W\",\"\\u2C72\":\"W\",\"\\u24CD\":\"X\",\"\\uFF38\":\"X\",\"\\u1E8A\":\"X\",\"\\u1E8C\":\"X\",\"\\u24CE\":\"Y\",\"\\uFF39\":\"Y\",\"\\u1EF2\":\"Y\",\"\\u00DD\":\"Y\",\"\\u0176\":\"Y\",\"\\u1EF8\":\"Y\",\"\\u0232\":\"Y\",\"\\u1E8E\":\"Y\",\"\\u0178\":\"Y\",\"\\u1EF6\":\"Y\",\"\\u1EF4\":\"Y\",\"\\u01B3\":\"Y\",\"\\u024E\":\"Y\",\"\\u1EFE\":\"Y\",\"\\u24CF\":\"Z\",\"\\uFF3A\":\"Z\",\"\\u0179\":\"Z\",\"\\u1E90\":\"Z\",\"\\u017B\":\"Z\",\"\\u017D\":\"Z\",\"\\u1E92\":\"Z\",\"\\u1E94\":\"Z\",\"\\u01B5\":\"Z\",\"\\u0224\":\"Z\",\"\\u2C7F\":\"Z\",\"\\u2C6B\":\"Z\",\"\\uA762\":\"Z\",\"\\u24D0\":\"a\",\"\\uFF41\":\"a\",\"\\u1E9A\":\"a\",\"\\u00E0\":\"a\",\"\\u00E1\":\"a\",\"\\u00E2\":\"a\",\"\\u1EA7\":\"a\",\"\\u1EA5\":\"a\",\"\\u1EAB\":\"a\",\"\\u1EA9\":\"a\",\"\\u00E3\":\"a\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u1EB1\":\"a\",\"\\u1EAF\":\"a\",\"\\u1EB5\":\"a\",\"\\u1EB3\":\"a\",\"\\u0227\":\"a\",\"\\u01E1\":\"a\",\"\\u00E4\":\"a\",\"\\u01DF\":\"a\",\"\\u1EA3\":\"a\",\"\\u00E5\":\"a\",\"\\u01FB\":\"a\",\"\\u01CE\":\"a\",\"\\u0201\":\"a\",\"\\u0203\":\"a\",\"\\u1EA1\":\"a\",\"\\u1EAD\":\"a\",\"\\u1EB7\":\"a\",\"\\u1E01\":\"a\",\"\\u0105\":\"a\",\"\\u2C65\":\"a\",\"\\u0250\":\"a\",\"\\uA733\":\"aa\",\"\\u00E6\":\"ae\",\"\\u01FD\":\"ae\",\"\\u01E3\":\"ae\",\"\\uA735\":\"ao\",\"\\uA737\":\"au\",\"\\uA739\":\"av\",\"\\uA73B\":\"av\",\"\\uA73D\":\"ay\",\"\\u24D1\":\"b\",\"\\uFF42\":\"b\",\"\\u1E03\":\"b\",\"\\u1E05\":\"b\",\"\\u1E07\":\"b\",\"\\u0180\":\"b\",\"\\u0183\":\"b\",\"\\u0253\":\"b\",\"\\u24D2\":\"c\",\"\\uFF43\":\"c\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010B\":\"c\",\"\\u010D\":\"c\",\"\\u00E7\":\"c\",\"\\u1E09\":\"c\",\"\\u0188\":\"c\",\"\\u023C\":\"c\",\"\\uA73F\":\"c\",\"\\u2184\":\"c\",\"\\u24D3\":\"d\",\"\\uFF44\":\"d\",\"\\u1E0B\":\"d\",\"\\u010F\":\"d\",\"\\u1E0D\":\"d\",\"\\u1E11\":\"d\",\"\\u1E13\":\"d\",\"\\u1E0F\":\"d\",\"\\u0111\":\"d\",\"\\u018C\":\"d\",\"\\u0256\":\"d\",\"\\u0257\":\"d\",\"\\uA77A\":\"d\",\"\\u01F3\":\"dz\",\"\\u01C6\":\"dz\",\"\\u24D4\":\"e\",\"\\uFF45\":\"e\",\"\\u00E8\":\"e\",\"\\u00E9\":\"e\",\"\\u00EA\":\"e\",\"\\u1EC1\":\"e\",\"\\u1EBF\":\"e\",\"\\u1EC5\":\"e\",\"\\u1EC3\":\"e\",\"\\u1EBD\":\"e\",\"\\u0113\":\"e\",\"\\u1E15\":\"e\",\"\\u1E17\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u00EB\":\"e\",\"\\u1EBB\":\"e\",\"\\u011B\":\"e\",\"\\u0205\":\"e\",\"\\u0207\":\"e\",\"\\u1EB9\":\"e\",\"\\u1EC7\":\"e\",\"\\u0229\":\"e\",\"\\u1E1D\":\"e\",\"\\u0119\":\"e\",\"\\u1E19\":\"e\",\"\\u1E1B\":\"e\",\"\\u0247\":\"e\",\"\\u025B\":\"e\",\"\\u01DD\":\"e\",\"\\u24D5\":\"f\",\"\\uFF46\":\"f\",\"\\u1E1F\":\"f\",\"\\u0192\":\"f\",\"\\uA77C\":\"f\",\"\\u24D6\":\"g\",\"\\uFF47\":\"g\",\"\\u01F5\":\"g\",\"\\u011D\":\"g\",\"\\u1E21\":\"g\",\"\\u011F\":\"g\",\"\\u0121\":\"g\",\"\\u01E7\":\"g\",\"\\u0123\":\"g\",\"\\u01E5\":\"g\",\"\\u0260\":\"g\",\"\\uA7A1\":\"g\",\"\\u1D79\":\"g\",\"\\uA77F\":\"g\",\"\\u24D7\":\"h\",\"\\uFF48\":\"h\",\"\\u0125\":\"h\",\"\\u1E23\":\"h\",\"\\u1E27\":\"h\",\"\\u021F\":\"h\",\"\\u1E25\":\"h\",\"\\u1E29\":\"h\",\"\\u1E2B\":\"h\",\"\\u1E96\":\"h\",\"\\u0127\":\"h\",\"\\u2C68\":\"h\",\"\\u2C76\":\"h\",\"\\u0265\":\"h\",\"\\u0195\":\"hv\",\"\\u24D8\":\"i\",\"\\uFF49\":\"i\",\"\\u00EC\":\"i\",\"\\u00ED\":\"i\",\"\\u00EE\":\"i\",\"\\u0129\":\"i\",\"\\u012B\":\"i\",\"\\u012D\":\"i\",\"\\u00EF\":\"i\",\"\\u1E2F\":\"i\",\"\\u1EC9\":\"i\",\"\\u01D0\":\"i\",\"\\u0209\":\"i\",\"\\u020B\":\"i\",\"\\u1ECB\":\"i\",\"\\u012F\":\"i\",\"\\u1E2D\":\"i\",\"\\u0268\":\"i\",\"\\u0131\":\"i\",\"\\u24D9\":\"j\",\"\\uFF4A\":\"j\",\"\\u0135\":\"j\",\"\\u01F0\":\"j\",\"\\u0249\":\"j\",\"\\u24DA\":\"k\",\"\\uFF4B\":\"k\",\"\\u1E31\":\"k\",\"\\u01E9\":\"k\",\"\\u1E33\":\"k\",\"\\u0137\":\"k\",\"\\u1E35\":\"k\",\"\\u0199\":\"k\",\"\\u2C6A\":\"k\",\"\\uA741\":\"k\",\"\\uA743\":\"k\",\"\\uA745\":\"k\",\"\\uA7A3\":\"k\",\"\\u24DB\":\"l\",\"\\uFF4C\":\"l\",\"\\u0140\":\"l\",\"\\u013A\":\"l\",\"\\u013E\":\"l\",\"\\u1E37\":\"l\",\"\\u1E39\":\"l\",\"\\u013C\":\"l\",\"\\u1E3D\":\"l\",\"\\u1E3B\":\"l\",\"\\u017F\":\"l\",\"\\u0142\":\"l\",\"\\u019A\":\"l\",\"\\u026B\":\"l\",\"\\u2C61\":\"l\",\"\\uA749\":\"l\",\"\\uA781\":\"l\",\"\\uA747\":\"l\",\"\\u01C9\":\"lj\",\"\\u24DC\":\"m\",\"\\uFF4D\":\"m\",\"\\u1E3F\":\"m\",\"\\u1E41\":\"m\",\"\\u1E43\":\"m\",\"\\u0271\":\"m\",\"\\u026F\":\"m\",\"\\u24DD\":\"n\",\"\\uFF4E\":\"n\",\"\\u01F9\":\"n\",\"\\u0144\":\"n\",\"\\u00F1\":\"n\",\"\\u1E45\":\"n\",\"\\u0148\":\"n\",\"\\u1E47\":\"n\",\"\\u0146\":\"n\",\"\\u1E4B\":\"n\",\"\\u1E49\":\"n\",\"\\u019E\":\"n\",\"\\u0272\":\"n\",\"\\u0149\":\"n\",\"\\uA791\":\"n\",\"\\uA7A5\":\"n\",\"\\u01CC\":\"nj\",\"\\u24DE\":\"o\",\"\\uFF4F\":\"o\",\"\\u00F2\":\"o\",\"\\u00F3\":\"o\",\"\\u00F4\":\"o\",\"\\u1ED3\":\"o\",\"\\u1ED1\":\"o\",\"\\u1ED7\":\"o\",\"\\u1ED5\":\"o\",\"\\u00F5\":\"o\",\"\\u1E4D\":\"o\",\"\\u022D\":\"o\",\"\\u1E4F\":\"o\",\"\\u014D\":\"o\",\"\\u1E51\":\"o\",\"\\u1E53\":\"o\",\"\\u014F\":\"o\",\"\\u022F\":\"o\",\"\\u0231\":\"o\",\"\\u00F6\":\"o\",\"\\u022B\":\"o\",\"\\u1ECF\":\"o\",\"\\u0151\":\"o\",\"\\u01D2\":\"o\",\"\\u020D\":\"o\",\"\\u020F\":\"o\",\"\\u01A1\":\"o\",\"\\u1EDD\":\"o\",\"\\u1EDB\":\"o\",\"\\u1EE1\":\"o\",\"\\u1EDF\":\"o\",\"\\u1EE3\":\"o\",\"\\u1ECD\":\"o\",\"\\u1ED9\":\"o\",\"\\u01EB\":\"o\",\"\\u01ED\":\"o\",\"\\u00F8\":\"o\",\"\\u01FF\":\"o\",\"\\u0254\":\"o\",\"\\uA74B\":\"o\",\"\\uA74D\":\"o\",\"\\u0275\":\"o\",\"\\u01A3\":\"oi\",\"\\u0223\":\"ou\",\"\\uA74F\":\"oo\",\"\\u24DF\":\"p\",\"\\uFF50\":\"p\",\"\\u1E55\":\"p\",\"\\u1E57\":\"p\",\"\\u01A5\":\"p\",\"\\u1D7D\":\"p\",\"\\uA751\":\"p\",\"\\uA753\":\"p\",\"\\uA755\":\"p\",\"\\u24E0\":\"q\",\"\\uFF51\":\"q\",\"\\u024B\":\"q\",\"\\uA757\":\"q\",\"\\uA759\":\"q\",\"\\u24E1\":\"r\",\"\\uFF52\":\"r\",\"\\u0155\":\"r\",\"\\u1E59\":\"r\",\"\\u0159\":\"r\",\"\\u0211\":\"r\",\"\\u0213\":\"r\",\"\\u1E5B\":\"r\",\"\\u1E5D\":\"r\",\"\\u0157\":\"r\",\"\\u1E5F\":\"r\",\"\\u024D\":\"r\",\"\\u027D\":\"r\",\"\\uA75B\":\"r\",\"\\uA7A7\":\"r\",\"\\uA783\":\"r\",\"\\u24E2\":\"s\",\"\\uFF53\":\"s\",\"\\u00DF\":\"s\",\"\\u015B\":\"s\",\"\\u1E65\":\"s\",\"\\u015D\":\"s\",\"\\u1E61\":\"s\",\"\\u0161\":\"s\",\"\\u1E67\":\"s\",\"\\u1E63\":\"s\",\"\\u1E69\":\"s\",\"\\u0219\":\"s\",\"\\u015F\":\"s\",\"\\u023F\":\"s\",\"\\uA7A9\":\"s\",\"\\uA785\":\"s\",\"\\u1E9B\":\"s\",\"\\u24E3\":\"t\",\"\\uFF54\":\"t\",\"\\u1E6B\":\"t\",\"\\u1E97\":\"t\",\"\\u0165\":\"t\",\"\\u1E6D\":\"t\",\"\\u021B\":\"t\",\"\\u0163\":\"t\",\"\\u1E71\":\"t\",\"\\u1E6F\":\"t\",\"\\u0167\":\"t\",\"\\u01AD\":\"t\",\"\\u0288\":\"t\",\"\\u2C66\":\"t\",\"\\uA787\":\"t\",\"\\uA729\":\"tz\",\"\\u24E4\":\"u\",\"\\uFF55\":\"u\",\"\\u00F9\":\"u\",\"\\u00FA\":\"u\",\"\\u00FB\":\"u\",\"\\u0169\":\"u\",\"\\u1E79\":\"u\",\"\\u016B\":\"u\",\"\\u1E7B\":\"u\",\"\\u016D\":\"u\",\"\\u00FC\":\"u\",\"\\u01DC\":\"u\",\"\\u01D8\":\"u\",\"\\u01D6\":\"u\",\"\\u01DA\":\"u\",\"\\u1EE7\":\"u\",\"\\u016F\":\"u\",\"\\u0171\":\"u\",\"\\u01D4\":\"u\",\"\\u0215\":\"u\",\"\\u0217\":\"u\",\"\\u01B0\":\"u\",\"\\u1EEB\":\"u\",\"\\u1EE9\":\"u\",\"\\u1EEF\":\"u\",\"\\u1EED\":\"u\",\"\\u1EF1\":\"u\",\"\\u1EE5\":\"u\",\"\\u1E73\":\"u\",\"\\u0173\":\"u\",\"\\u1E77\":\"u\",\"\\u1E75\":\"u\",\"\\u0289\":\"u\",\"\\u24E5\":\"v\",\"\\uFF56\":\"v\",\"\\u1E7D\":\"v\",\"\\u1E7F\":\"v\",\"\\u028B\":\"v\",\"\\uA75F\":\"v\",\"\\u028C\":\"v\",\"\\uA761\":\"vy\",\"\\u24E6\":\"w\",\"\\uFF57\":\"w\",\"\\u1E81\":\"w\",\"\\u1E83\":\"w\",\"\\u0175\":\"w\",\"\\u1E87\":\"w\",\"\\u1E85\":\"w\",\"\\u1E98\":\"w\",\"\\u1E89\":\"w\",\"\\u2C73\":\"w\",\"\\u24E7\":\"x\",\"\\uFF58\":\"x\",\"\\u1E8B\":\"x\",\"\\u1E8D\":\"x\",\"\\u24E8\":\"y\",\"\\uFF59\":\"y\",\"\\u1EF3\":\"y\",\"\\u00FD\":\"y\",\"\\u0177\":\"y\",\"\\u1EF9\":\"y\",\"\\u0233\":\"y\",\"\\u1E8F\":\"y\",\"\\u00FF\":\"y\",\"\\u1EF7\":\"y\",\"\\u1E99\":\"y\",\"\\u1EF5\":\"y\",\"\\u01B4\":\"y\",\"\\u024F\":\"y\",\"\\u1EFF\":\"y\",\"\\u24E9\":\"z\",\"\\uFF5A\":\"z\",\"\\u017A\":\"z\",\"\\u1E91\":\"z\",\"\\u017C\":\"z\",\"\\u017E\":\"z\",\"\\u1E93\":\"z\",\"\\u1E95\":\"z\",\"\\u01B6\":\"z\",\"\\u0225\":\"z\",\"\\u0240\":\"z\",\"\\u2C6C\":\"z\",\"\\uA763\":\"z\",\"\\u0386\":\"\\u0391\",\"\\u0388\":\"\\u0395\",\"\\u0389\":\"\\u0397\",\"\\u038A\":\"\\u0399\",\"\\u03AA\":\"\\u0399\",\"\\u038C\":\"\\u039F\",\"\\u038E\":\"\\u03A5\",\"\\u03AB\":\"\\u03A5\",\"\\u038F\":\"\\u03A9\",\"\\u03AC\":\"\\u03B1\",\"\\u03AD\":\"\\u03B5\",\"\\u03AE\":\"\\u03B7\",\"\\u03AF\":\"\\u03B9\",\"\\u03CA\":\"\\u03B9\",\"\\u0390\":\"\\u03B9\",\"\\u03CC\":\"\\u03BF\",\"\\u03CD\":\"\\u03C5\",\"\\u03CB\":\"\\u03C5\",\"\\u03B0\":\"\\u03C5\",\"\\u03C9\":\"\\u03C9\",\"\\u03C2\":\"\\u03C3\"};\n\n $document = $(document);\n\n nextUid=(function() { var counter=1; return function() { return counter++; }; }());\n\n\n function reinsertElement(element) {\n var placeholder = $(document.createTextNode(''));\n\n element.before(placeholder);\n placeholder.before(element);\n placeholder.remove();\n }\n\n function stripDiacritics(str) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return str.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function indexOf(value, array) {\n var i = 0, l = array.length;\n for (; i < l; i = i + 1) {\n if (equal(value, array[i])) return i;\n }\n return -1;\n }\n\n function measureScrollbar () {\n var $template = $( MEASURE_SCROLLBAR_TEMPLATE );\n $template.appendTo('body');\n\n var dim = {\n width: $template.width() - $template[0].clientWidth,\n height: $template.height() - $template[0].clientHeight\n };\n $template.remove();\n\n return dim;\n }\n\n /**\n * Compares equality of a and b\n * @param a\n * @param b\n */\n function equal(a, b) {\n if (a === b) return true;\n if (a === undefined || b === undefined) return false;\n if (a === null || b === null) return false;\n // Check whether 'a' or 'b' is a string (primitive or object).\n // The concatenation of an empty string (+'') converts its argument to a string's primitive.\n if (a.constructor === String) return a+'' === b+''; // a+'' - in case 'a' is a String object\n if (b.constructor === String) return b+'' === a+''; // b+'' - in case 'b' is a String object\n return false;\n }\n\n /**\n * Splits the string into an array of values, trimming each value. An empty array is returned for nulls or empty\n * strings\n * @param string\n * @param separator\n */\n function splitVal(string, separator) {\n var val, i, l;\n if (string === null || string.length < 1) return [];\n val = string.split(separator);\n for (i = 0, l = val.length; i < l; i = i + 1) val[i] = $.trim(val[i]);\n return val;\n }\n\n function getSideBorderPadding(element) {\n return element.outerWidth(false) - element.width();\n }\n\n function installKeyUpChangeEvent(element) {\n var key=\"keyup-change-value\";\n element.on(\"keydown\", function () {\n if ($.data(element, key) === undefined) {\n $.data(element, key, element.val());\n }\n });\n element.on(\"keyup\", function () {\n var val= $.data(element, key);\n if (val !== undefined && element.val() !== val) {\n $.removeData(element, key);\n element.trigger(\"keyup-change\");\n }\n });\n }\n\n\n /**\n * filters mouse events so an event is fired only if the mouse moved.\n *\n * filters out mouse events that occur when mouse is stationary but\n * the elements under the pointer are scrolled.\n */\n function installFilteredMouseMove(element) {\n element.on(\"mousemove\", function (e) {\n var lastpos = lastMousePosition;\n if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) {\n $(e.target).trigger(\"mousemove-filtered\", e);\n }\n });\n }\n\n /**\n * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made\n * within the last quietMillis milliseconds.\n *\n * @param quietMillis number of milliseconds to wait before invoking fn\n * @param fn function to be debounced\n * @param ctx object to be used as this reference within fn\n * @return debounced version of fn\n */\n function debounce(quietMillis, fn, ctx) {\n ctx = ctx || undefined;\n var timeout;\n return function () {\n var args = arguments;\n window.clearTimeout(timeout);\n timeout = window.setTimeout(function() {\n fn.apply(ctx, args);\n }, quietMillis);\n };\n }\n\n function installDebouncedScroll(threshold, element) {\n var notify = debounce(threshold, function (e) { element.trigger(\"scroll-debounced\", e);});\n element.on(\"scroll\", function (e) {\n if (indexOf(e.target, element.get()) >= 0) notify(e);\n });\n }\n\n function focus($el) {\n if ($el[0] === document.activeElement) return;\n\n /* set the focus in a 0 timeout - that way the focus is set after the processing\n of the current event has finished - which seems like the only reliable way\n to set focus */\n window.setTimeout(function() {\n var el=$el[0], pos=$el.val().length, range;\n\n $el.focus();\n\n /* make sure el received focus so we do not error out when trying to manipulate the caret.\n sometimes modals or others listeners may steal it after its set */\n var isVisible = (el.offsetWidth > 0 || el.offsetHeight > 0);\n if (isVisible && el === document.activeElement) {\n\n /* after the focus is set move the caret to the end, necessary when we val()\n just before setting focus */\n if(el.setSelectionRange)\n {\n el.setSelectionRange(pos, pos);\n }\n else if (el.createTextRange) {\n range = el.createTextRange();\n range.collapse(false);\n range.select();\n }\n }\n }, 0);\n }\n\n function getCursorInfo(el) {\n el = $(el)[0];\n var offset = 0;\n var length = 0;\n if ('selectionStart' in el) {\n offset = el.selectionStart;\n length = el.selectionEnd - offset;\n } else if ('selection' in document) {\n el.focus();\n var sel = document.selection.createRange();\n length = document.selection.createRange().text.length;\n sel.moveStart('character', -el.value.length);\n offset = sel.text.length - length;\n }\n return { offset: offset, length: length };\n }\n\n function killEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n function killEventImmediately(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n function measureTextWidth(e) {\n if (!sizer){\n var style = e[0].currentStyle || window.getComputedStyle(e[0], null);\n sizer = $(document.createElement(\"div\")).css({\n position: \"absolute\",\n left: \"-10000px\",\n top: \"-10000px\",\n display: \"none\",\n fontSize: style.fontSize,\n fontFamily: style.fontFamily,\n fontStyle: style.fontStyle,\n fontWeight: style.fontWeight,\n letterSpacing: style.letterSpacing,\n textTransform: style.textTransform,\n whiteSpace: \"nowrap\"\n });\n sizer.attr(\"class\",\"select2-sizer\");\n $(\"body\").append(sizer);\n }\n sizer.text(e.val());\n return sizer.width();\n }\n\n function syncCssClasses(dest, src, adapter) {\n var classes, replacements = [], adapted;\n\n classes = $.trim(dest.attr(\"class\"));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each2(function() {\n if (this.indexOf(\"select2-\") === 0) {\n replacements.push(this);\n }\n });\n }\n\n classes = $.trim(src.attr(\"class\"));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each2(function() {\n if (this.indexOf(\"select2-\") !== 0) {\n adapted = adapter(this);\n\n if (adapted) {\n replacements.push(adapted);\n }\n }\n });\n }\n\n dest.attr(\"class\", replacements.join(\" \"));\n }\n\n\n function markMatch(text, term, markup, escapeMarkup) {\n var match=stripDiacritics(text.toUpperCase()).indexOf(stripDiacritics(term.toUpperCase())),\n tl=term.length;\n\n if (match<0) {\n markup.push(escapeMarkup(text));\n return;\n }\n\n markup.push(escapeMarkup(text.substring(0, match)));\n markup.push(\"\");\n markup.push(escapeMarkup(text.substring(match, match + tl)));\n markup.push(\"\");\n markup.push(escapeMarkup(text.substring(match + tl, text.length)));\n }\n\n function defaultEscapeMarkup(markup) {\n var replace_map = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n \"/\": '/'\n };\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replace_map[match];\n });\n }\n\n /**\n * Produces an ajax-based query function\n *\n * @param options object containing configuration parameters\n * @param options.params parameter map for the transport ajax call, can contain such options as cache, jsonpCallback, etc. see $.ajax\n * @param options.transport function that will be used to execute the ajax request. must be compatible with parameters supported by $.ajax\n * @param options.url url for the data\n * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url.\n * @param options.dataType request data type: ajax, jsonp, other datatypes supported by jQuery's $.ajax function or the transport function if specified\n * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often\n * @param options.results a function(remoteData, pageNumber, query) that converts data returned form the remote request to the format expected by Select2.\n * The expected format is an object containing the following keys:\n * results array of objects that will be used as choices\n * more (optional) boolean indicating whether there are more results available\n * Example: {results:[{id:1, text:'Red'},{id:2, text:'Blue'}], more:true}\n */\n function ajax(options) {\n var timeout, // current scheduled but not yet executed request\n handler = null,\n quietMillis = options.quietMillis || 100,\n ajaxUrl = options.url,\n self = this;\n\n return function (query) {\n window.clearTimeout(timeout);\n timeout = window.setTimeout(function () {\n var data = options.data, // ajax data function\n url = ajaxUrl, // ajax url string or function\n transport = options.transport || $.fn.select2.ajaxDefaults.transport,\n // deprecated - to be removed in 4.0 - use params instead\n deprecated = {\n type: options.type || 'GET', // set type of request (GET or POST)\n cache: options.cache || false,\n jsonpCallback: options.jsonpCallback||undefined,\n dataType: options.dataType||\"json\"\n },\n params = $.extend({}, $.fn.select2.ajaxDefaults.params, deprecated);\n\n data = data ? data.call(self, query.term, query.page, query.context) : null;\n url = (typeof url === 'function') ? url.call(self, query.term, query.page, query.context) : url;\n\n if (handler && typeof handler.abort === \"function\") { handler.abort(); }\n\n if (options.params) {\n if ($.isFunction(options.params)) {\n $.extend(params, options.params.call(self));\n } else {\n $.extend(params, options.params);\n }\n }\n\n $.extend(params, {\n url: url,\n dataType: options.dataType,\n data: data,\n success: function (data) {\n // TODO - replace query.page with query so users have access to term, page, etc.\n // added query as third paramter to keep backwards compatibility\n var results = options.results(data, query.page, query);\n query.callback(results);\n },\n error: function(jqXHR, textStatus, errorThrown){\n var results = {\n hasError: true,\n jqXHR: jqXHR,\n textStatus: textStatus,\n errorThrown: errorThrown,\n };\n\n query.callback(results);\n }\n });\n handler = transport.call(self, params);\n }, quietMillis);\n };\n }\n\n /**\n * Produces a query function that works with a local array\n *\n * @param options object containing configuration parameters. The options parameter can either be an array or an\n * object.\n *\n * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys.\n *\n * If the object form is used it is assumed that it contains 'data' and 'text' keys. The 'data' key should contain\n * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text'\n * key can either be a String in which case it is expected that each element in the 'data' array has a key with the\n * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract\n * the text.\n */\n function local(options) {\n var data = options, // data elements\n dataText,\n tmp,\n text = function (item) { return \"\"+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search\n\n if ($.isArray(data)) {\n tmp = data;\n data = { results: tmp };\n }\n\n if ($.isFunction(data) === false) {\n tmp = data;\n data = function() { return tmp; };\n }\n\n var dataItem = data();\n if (dataItem.text) {\n text = dataItem.text;\n // if text is not a function we assume it to be a key name\n if (!$.isFunction(text)) {\n dataText = dataItem.text; // we need to store this in a separate variable because in the next step data gets reset and data.text is no longer available\n text = function (item) { return item[dataText]; };\n }\n }\n\n return function (query) {\n var t = query.term, filtered = { results: [] }, process;\n if (t === \"\") {\n query.callback(data());\n return;\n }\n\n process = function(datum, collection) {\n var group, attr;\n datum = datum[0];\n if (datum.children) {\n group = {};\n for (attr in datum) {\n if (datum.hasOwnProperty(attr)) group[attr]=datum[attr];\n }\n group.children=[];\n $(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); });\n if (group.children.length || query.matcher(t, text(group), datum)) {\n collection.push(group);\n }\n } else {\n if (query.matcher(t, text(datum), datum)) {\n collection.push(datum);\n }\n }\n };\n\n $(data().results).each2(function(i, datum) { process(datum, filtered.results); });\n query.callback(filtered);\n };\n }\n\n // TODO javadoc\n function tags(data) {\n var isFunc = $.isFunction(data);\n return function (query) {\n var t = query.term, filtered = {results: []};\n var result = isFunc ? data(query) : data;\n if ($.isArray(result)) {\n $(result).each(function () {\n var isObject = this.text !== undefined,\n text = isObject ? this.text : this;\n if (t === \"\" || query.matcher(t, text)) {\n filtered.results.push(isObject ? this : {id: this, text: this});\n }\n });\n query.callback(filtered);\n }\n };\n }\n\n /**\n * Checks if the formatter function should be used.\n *\n * Throws an error if it is not a function. Returns true if it should be used,\n * false if no formatting should be performed.\n *\n * @param formatter\n */\n function checkFormatter(formatter, formatterName) {\n if ($.isFunction(formatter)) return true;\n if (!formatter) return false;\n if (typeof(formatter) === 'string') return true;\n throw new Error(formatterName +\" must be a string, function, or falsy value\");\n }\n\n /**\n * Returns a given value\n * If given a function, returns its output\n *\n * @param val string|function\n * @param context value of \"this\" to be passed to function\n * @returns {*}\n */\n function evaluate(val, context) {\n if ($.isFunction(val)) {\n var args = Array.prototype.slice.call(arguments, 2);\n return val.apply(context, args);\n }\n return val;\n }\n\n function countResults(results) {\n var count = 0;\n $.each(results, function(i, item) {\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n });\n return count;\n }\n\n /**\n * Default tokenizer. This function uses breaks the input on substring match of any string from the\n * opts.tokenSeparators array and uses opts.createSearchChoice to create the choice object. Both of those\n * two options have to be defined in order for the tokenizer to work.\n *\n * @param input text user has typed so far or pasted into the search field\n * @param selection currently selected choices\n * @param selectCallback function(choice) callback tho add the choice to selection\n * @param opts select2's opts\n * @return undefined/null to leave the current input unchanged, or a string to change the input to the returned value\n */\n function defaultTokenizer(input, selection, selectCallback, opts) {\n var original = input, // store the original so we can compare and know if we need to tell the search to update its text\n dupe = false, // check for whether a token we extracted represents a duplicate selected choice\n token, // token\n index, // position at which the separator was found\n i, l, // looping variables\n separator; // the matched separator\n\n if (!opts.createSearchChoice || !opts.tokenSeparators || opts.tokenSeparators.length < 1) return undefined;\n\n while (true) {\n index = -1;\n\n for (i = 0, l = opts.tokenSeparators.length; i < l; i++) {\n separator = opts.tokenSeparators[i];\n index = input.indexOf(separator);\n if (index >= 0) break;\n }\n\n if (index < 0) break; // did not find any token separator in the input string, bail\n\n token = input.substring(0, index);\n input = input.substring(index + separator.length);\n\n if (token.length > 0) {\n token = opts.createSearchChoice.call(this, token, selection);\n if (token !== undefined && token !== null && opts.id(token) !== undefined && opts.id(token) !== null) {\n dupe = false;\n for (i = 0, l = selection.length; i < l; i++) {\n if (equal(opts.id(token), opts.id(selection[i]))) {\n dupe = true; break;\n }\n }\n\n if (!dupe) selectCallback(token);\n }\n }\n }\n\n if (original!==input) return input;\n }\n\n function cleanupJQueryElements() {\n var self = this;\n\n $.each(arguments, function (i, element) {\n self[element].remove();\n self[element] = null;\n });\n }\n\n /**\n * Creates a new class\n *\n * @param superClass\n * @param methods\n */\n function clazz(SuperClass, methods) {\n var constructor = function () {};\n constructor.prototype = new SuperClass;\n constructor.prototype.constructor = constructor;\n constructor.prototype.parent = SuperClass.prototype;\n constructor.prototype = $.extend(constructor.prototype, methods);\n return constructor;\n }\n\n AbstractSelect2 = clazz(Object, {\n\n // abstract\n bind: function (func) {\n var self = this;\n return function () {\n func.apply(self, arguments);\n };\n },\n\n // abstract\n init: function (opts) {\n var results, search, resultsSelector = \".select2-results\";\n\n // prepare options\n this.opts = opts = this.prepareOpts(opts);\n\n this.id=opts.id;\n\n // destroy if called on an existing component\n if (opts.element.data(\"select2\") !== undefined &&\n opts.element.data(\"select2\") !== null) {\n opts.element.data(\"select2\").destroy();\n }\n\n this.container = this.createContainer();\n\n this.liveRegion = $(\"\", {\n role: \"status\",\n \"aria-live\": \"polite\"\n })\n .addClass(\"select2-hidden-accessible\")\n .appendTo(document.body);\n\n this.containerId=\"s2id_\"+(opts.element.attr(\"id\") || \"autogen\"+nextUid());\n this.containerEventName= this.containerId\n .replace(/([.])/g, '_')\n .replace(/([;&,\\-\\.\\+\\*\\~':\"\\!\\^#$%@\\[\\]\\(\\)=>\\|])/g, '\\\\$1');\n this.container.attr(\"id\", this.containerId);\n\n this.container.attr(\"title\", opts.element.attr(\"title\"));\n\n this.body = $(\"body\");\n\n syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);\n\n this.container.attr(\"style\", opts.element.attr(\"style\"));\n this.container.css(evaluate(opts.containerCss, this.opts.element));\n this.container.addClass(evaluate(opts.containerCssClass, this.opts.element));\n\n this.elementTabIndex = this.opts.element.attr(\"tabindex\");\n\n // swap container for the element\n this.opts.element\n .data(\"select2\", this)\n .attr(\"tabindex\", \"-1\")\n .before(this.container)\n .on(\"click.select2\", killEvent); // do not leak click events\n\n this.container.data(\"select2\", this);\n\n this.dropdown = this.container.find(\".select2-drop\");\n\n syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);\n\n this.dropdown.addClass(evaluate(opts.dropdownCssClass, this.opts.element));\n this.dropdown.data(\"select2\", this);\n this.dropdown.on(\"click\", killEvent);\n\n this.results = results = this.container.find(resultsSelector);\n this.search = search = this.container.find(\"input.select2-input\");\n\n this.queryCount = 0;\n this.resultsPage = 0;\n this.context = null;\n\n // initialize the container\n this.initContainer();\n\n this.container.on(\"click\", killEvent);\n\n installFilteredMouseMove(this.results);\n\n this.dropdown.on(\"mousemove-filtered\", resultsSelector, this.bind(this.highlightUnderEvent));\n this.dropdown.on(\"touchstart touchmove touchend\", resultsSelector, this.bind(function (event) {\n this._touchEvent = true;\n this.highlightUnderEvent(event);\n }));\n this.dropdown.on(\"touchmove\", resultsSelector, this.bind(this.touchMoved));\n this.dropdown.on(\"touchstart touchend\", resultsSelector, this.bind(this.clearTouchMoved));\n\n // Waiting for a click event on touch devices to select option and hide dropdown\n // otherwise click will be triggered on an underlying element\n this.dropdown.on('click', this.bind(function (event) {\n if (this._touchEvent) {\n this._touchEvent = false;\n this.selectHighlighted();\n }\n }));\n\n installDebouncedScroll(80, this.results);\n this.dropdown.on(\"scroll-debounced\", resultsSelector, this.bind(this.loadMoreIfNeeded));\n\n // do not propagate change event from the search field out of the component\n $(this.container).on(\"change\", \".select2-input\", function(e) {e.stopPropagation();});\n $(this.dropdown).on(\"change\", \".select2-input\", function(e) {e.stopPropagation();});\n\n // if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel\n if ($.fn.mousewheel) {\n results.mousewheel(function (e, delta, deltaX, deltaY) {\n var top = results.scrollTop();\n if (deltaY > 0 && top - deltaY <= 0) {\n results.scrollTop(0);\n killEvent(e);\n } else if (deltaY < 0 && results.get(0).scrollHeight - results.scrollTop() + deltaY <= results.height()) {\n results.scrollTop(results.get(0).scrollHeight - results.height());\n killEvent(e);\n }\n });\n }\n\n installKeyUpChangeEvent(search);\n search.on(\"keyup-change input paste\", this.bind(this.updateResults));\n search.on(\"focus\", function () { search.addClass(\"select2-focused\"); });\n search.on(\"blur\", function () { search.removeClass(\"select2-focused\");});\n\n this.dropdown.on(\"mouseup\", resultsSelector, this.bind(function (e) {\n if ($(e.target).closest(\".select2-result-selectable\").length > 0) {\n this.highlightUnderEvent(e);\n this.selectHighlighted(e);\n }\n }));\n\n // trap all mouse events from leaving the dropdown. sometimes there may be a modal that is listening\n // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's\n // dom it will trigger the popup close, which is not what we want\n // focusin can cause focus wars between modals and select2 since the dropdown is outside the modal.\n this.dropdown.on(\"click mouseup mousedown touchstart touchend focusin\", function (e) { e.stopPropagation(); });\n\n this.nextSearchTerm = undefined;\n\n if ($.isFunction(this.opts.initSelection)) {\n // initialize selection based on the current value of the source element\n this.initSelection();\n\n // if the user has provided a function that can set selection based on the value of the source element\n // we monitor the change event on the element and trigger it, allowing for two way synchronization\n this.monitorSource();\n }\n\n if (opts.maximumInputLength !== null) {\n this.search.attr(\"maxlength\", opts.maximumInputLength);\n }\n\n var disabled = opts.element.prop(\"disabled\");\n if (disabled === undefined) disabled = false;\n this.enable(!disabled);\n\n var readonly = opts.element.prop(\"readonly\");\n if (readonly === undefined) readonly = false;\n this.readonly(readonly);\n\n // Calculate size of scrollbar\n scrollBarDimensions = scrollBarDimensions || measureScrollbar();\n\n this.autofocus = opts.element.prop(\"autofocus\");\n opts.element.prop(\"autofocus\", false);\n if (this.autofocus) this.focus();\n\n this.search.attr(\"placeholder\", opts.searchInputPlaceholder);\n },\n\n // abstract\n destroy: function () {\n var element=this.opts.element, select2 = element.data(\"select2\"), self = this;\n\n this.close();\n\n if (element.length && element[0].detachEvent) {\n element.each(function () {\n this.detachEvent(\"onpropertychange\", self._sync);\n });\n }\n if (this.propertyObserver) {\n this.propertyObserver.disconnect();\n this.propertyObserver = null;\n }\n this._sync = null;\n\n if (select2 !== undefined) {\n select2.container.remove();\n select2.liveRegion.remove();\n select2.dropdown.remove();\n element\n .removeClass(\"select2-offscreen\")\n .removeData(\"select2\")\n .off(\".select2\")\n .prop(\"autofocus\", this.autofocus || false);\n if (this.elementTabIndex) {\n element.attr({tabindex: this.elementTabIndex});\n } else {\n element.removeAttr(\"tabindex\");\n }\n element.show();\n }\n\n cleanupJQueryElements.call(this,\n \"container\",\n \"liveRegion\",\n \"dropdown\",\n \"results\",\n \"search\"\n );\n },\n\n // abstract\n optionToData: function(element) {\n if (element.is(\"option\")) {\n return {\n id:element.prop(\"value\"),\n text:element.text(),\n element: element.get(),\n css: element.attr(\"class\"),\n disabled: element.prop(\"disabled\"),\n locked: equal(element.attr(\"locked\"), \"locked\") || equal(element.data(\"locked\"), true)\n };\n } else if (element.is(\"optgroup\")) {\n return {\n text:element.attr(\"label\"),\n children:[],\n element: element.get(),\n css: element.attr(\"class\")\n };\n }\n },\n\n // abstract\n prepareOpts: function (opts) {\n var element, select, idKey, ajaxUrl, self = this;\n\n element = opts.element;\n\n if (element.get(0).tagName.toLowerCase() === \"select\") {\n this.select = select = opts.element;\n }\n\n if (select) {\n // these options are not allowed when attached to a select because they are picked up off the element itself\n $.each([\"id\", \"multiple\", \"ajax\", \"query\", \"createSearchChoice\", \"initSelection\", \"data\", \"tags\"], function () {\n if (this in opts) {\n throw new Error(\"Option '\" + this + \"' is not allowed for Select2 when attached to a \",\n \"
\",\n \" \",\n \"
    \",\n \"
\",\n \"
\"].join(\"\"));\n return container;\n },\n\n // single\n enableInterface: function() {\n if (this.parent.enableInterface.apply(this, arguments)) {\n this.focusser.prop(\"disabled\", !this.isInterfaceEnabled());\n }\n },\n\n // single\n opening: function () {\n var el, range, len;\n\n if (this.opts.minimumResultsForSearch >= 0) {\n this.showSearch(true);\n }\n\n this.parent.opening.apply(this, arguments);\n\n if (this.showSearchInput !== false) {\n // IE appends focusser.val() at the end of field :/ so we manually insert it at the beginning using a range\n // all other browsers handle this just fine\n\n this.search.val(this.focusser.val());\n }\n if (this.opts.shouldFocusInput(this)) {\n this.search.focus();\n // move the cursor to the end after focussing, otherwise it will be at the beginning and\n // new text will appear *before* focusser.val()\n el = this.search.get(0);\n if (el.createTextRange) {\n range = el.createTextRange();\n range.collapse(false);\n range.select();\n } else if (el.setSelectionRange) {\n len = this.search.val().length;\n el.setSelectionRange(len, len);\n }\n }\n\n // initializes search's value with nextSearchTerm (if defined by user)\n // ignore nextSearchTerm if the dropdown is opened by the user pressing a letter\n if(this.search.val() === \"\") {\n if(this.nextSearchTerm != undefined){\n this.search.val(this.nextSearchTerm);\n this.search.select();\n }\n }\n\n this.focusser.prop(\"disabled\", true).val(\"\");\n this.updateResults(true);\n this.opts.element.trigger($.Event(\"select2-open\"));\n },\n\n // single\n close: function () {\n if (!this.opened()) return;\n this.parent.close.apply(this, arguments);\n\n this.focusser.prop(\"disabled\", false);\n\n if (this.opts.shouldFocusInput(this)) {\n this.focusser.focus();\n }\n },\n\n // single\n focus: function () {\n if (this.opened()) {\n this.close();\n } else {\n this.focusser.prop(\"disabled\", false);\n if (this.opts.shouldFocusInput(this)) {\n this.focusser.focus();\n }\n }\n },\n\n // single\n isFocused: function () {\n return this.container.hasClass(\"select2-container-active\");\n },\n\n // single\n cancel: function () {\n this.parent.cancel.apply(this, arguments);\n this.focusser.prop(\"disabled\", false);\n\n if (this.opts.shouldFocusInput(this)) {\n this.focusser.focus();\n }\n },\n\n // single\n destroy: function() {\n $(\"label[for='\" + this.focusser.attr('id') + \"']\")\n .attr('for', this.opts.element.attr(\"id\"));\n this.parent.destroy.apply(this, arguments);\n\n cleanupJQueryElements.call(this,\n \"selection\",\n \"focusser\"\n );\n },\n\n // single\n initContainer: function () {\n\n var selection,\n container = this.container,\n dropdown = this.dropdown,\n idSuffix = nextUid(),\n elementLabel;\n\n if (this.opts.minimumResultsForSearch < 0) {\n this.showSearch(false);\n } else {\n this.showSearch(true);\n }\n\n this.selection = selection = container.find(\".select2-choice\");\n\n this.focusser = container.find(\".select2-focusser\");\n\n // add aria associations\n selection.find(\".select2-chosen\").attr(\"id\", \"select2-chosen-\"+idSuffix);\n this.focusser.attr(\"aria-labelledby\", \"select2-chosen-\"+idSuffix);\n this.results.attr(\"id\", \"select2-results-\"+idSuffix);\n this.search.attr(\"aria-owns\", \"select2-results-\"+idSuffix);\n\n // rewrite labels from original element to focusser\n this.focusser.attr(\"id\", \"s2id_autogen\"+idSuffix);\n\n elementLabel = $(\"label[for='\" + this.opts.element.attr(\"id\") + \"']\");\n\n this.focusser.prev()\n .text(elementLabel.text())\n .attr('for', this.focusser.attr('id'));\n\n // Ensure the original element retains an accessible name\n var originalTitle = this.opts.element.attr(\"title\");\n this.opts.element.attr(\"title\", (originalTitle || elementLabel.text()));\n\n this.focusser.attr(\"tabindex\", this.elementTabIndex);\n\n // write label for search field using the label from the focusser element\n this.search.attr(\"id\", this.focusser.attr('id') + '_search');\n\n this.search.prev()\n .text($(\"label[for='\" + this.focusser.attr('id') + \"']\").text())\n .attr('for', this.search.attr('id'));\n\n this.search.on(\"keydown\", this.bind(function (e) {\n if (!this.isInterfaceEnabled()) return;\n\n // filter 229 keyCodes (input method editor is processing key input)\n if (229 == e.keyCode) return;\n\n if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {\n // prevent the page from scrolling\n killEvent(e);\n return;\n }\n\n switch (e.which) {\n case KEY.UP:\n case KEY.DOWN:\n this.moveHighlight((e.which === KEY.UP) ? -1 : 1);\n killEvent(e);\n return;\n case KEY.ENTER:\n this.selectHighlighted();\n killEvent(e);\n return;\n case KEY.TAB:\n this.selectHighlighted({noFocus: true});\n return;\n case KEY.ESC:\n this.cancel(e);\n killEvent(e);\n return;\n }\n }));\n\n this.search.on(\"blur\", this.bind(function(e) {\n // a workaround for chrome to keep the search field focussed when the scroll bar is used to scroll the dropdown.\n // without this the search field loses focus which is annoying\n if (document.activeElement === this.body.get(0)) {\n window.setTimeout(this.bind(function() {\n if (this.opened()) {\n this.search.focus();\n }\n }), 0);\n }\n }));\n\n this.focusser.on(\"keydown\", this.bind(function (e) {\n if (!this.isInterfaceEnabled()) return;\n\n if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) {\n return;\n }\n\n if (this.opts.openOnEnter === false && e.which === KEY.ENTER) {\n killEvent(e);\n return;\n }\n\n if (e.which == KEY.DOWN || e.which == KEY.UP\n || (e.which == KEY.ENTER && this.opts.openOnEnter)) {\n\n if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) return;\n\n this.open();\n killEvent(e);\n return;\n }\n\n if (e.which == KEY.DELETE || e.which == KEY.BACKSPACE) {\n if (this.opts.allowClear) {\n this.clear();\n }\n killEvent(e);\n return;\n }\n }));\n\n\n installKeyUpChangeEvent(this.focusser);\n this.focusser.on(\"keyup-change input\", this.bind(function(e) {\n if (this.opts.minimumResultsForSearch >= 0) {\n e.stopPropagation();\n if (this.opened()) return;\n this.open();\n }\n }));\n\n selection.on(\"mousedown touchstart\", \"abbr\", this.bind(function (e) {\n if (!this.isInterfaceEnabled()) return;\n this.clear();\n killEventImmediately(e);\n this.close();\n this.selection.focus();\n }));\n\n selection.on(\"mousedown touchstart\", this.bind(function (e) {\n // Prevent IE from generating a click event on the body\n reinsertElement(selection);\n\n if (!this.container.hasClass(\"select2-container-active\")) {\n this.opts.element.trigger($.Event(\"select2-focus\"));\n }\n\n if (this.opened()) {\n this.close();\n } else if (this.isInterfaceEnabled()) {\n this.open();\n }\n\n killEvent(e);\n }));\n\n dropdown.on(\"mousedown touchstart\", this.bind(function() {\n if (this.opts.shouldFocusInput(this)) {\n this.search.focus();\n }\n }));\n\n selection.on(\"focus\", this.bind(function(e) {\n killEvent(e);\n }));\n\n this.focusser.on(\"focus\", this.bind(function(){\n if (!this.container.hasClass(\"select2-container-active\")) {\n this.opts.element.trigger($.Event(\"select2-focus\"));\n }\n this.container.addClass(\"select2-container-active\");\n })).on(\"blur\", this.bind(function() {\n if (!this.opened()) {\n this.container.removeClass(\"select2-container-active\");\n this.opts.element.trigger($.Event(\"select2-blur\"));\n }\n }));\n this.search.on(\"focus\", this.bind(function(){\n if (!this.container.hasClass(\"select2-container-active\")) {\n this.opts.element.trigger($.Event(\"select2-focus\"));\n }\n this.container.addClass(\"select2-container-active\");\n }));\n\n this.initContainerWidth();\n this.opts.element.addClass(\"select2-offscreen\");\n this.setPlaceholder();\n\n },\n\n // single\n clear: function(triggerChange) {\n var data=this.selection.data(\"select2-data\");\n if (data) { // guard against queued quick consecutive clicks\n var evt = $.Event(\"select2-clearing\");\n this.opts.element.trigger(evt);\n if (evt.isDefaultPrevented()) {\n return;\n }\n var placeholderOption = this.getPlaceholderOption();\n this.opts.element.val(placeholderOption ? placeholderOption.val() : \"\");\n this.selection.find(\".select2-chosen\").empty();\n this.selection.removeData(\"select2-data\");\n this.setPlaceholder();\n\n if (triggerChange !== false){\n this.opts.element.trigger({ type: \"select2-removed\", val: this.id(data), choice: data });\n this.triggerChange({removed:data});\n }\n }\n },\n\n /**\n * Sets selection based on source element's value\n */\n // single\n initSelection: function () {\n var selected;\n if (this.isPlaceholderOptionSelected()) {\n this.updateSelection(null);\n this.close();\n this.setPlaceholder();\n } else {\n var self = this;\n this.opts.initSelection.call(null, this.opts.element, function(selected){\n if (selected !== undefined && selected !== null) {\n self.updateSelection(selected);\n self.close();\n self.setPlaceholder();\n self.nextSearchTerm = self.opts.nextSearchTerm(selected, self.search.val());\n }\n });\n }\n },\n\n isPlaceholderOptionSelected: function() {\n var placeholderOption;\n if (this.getPlaceholder() === undefined) return false; // no placeholder specified so no option should be considered\n return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.prop(\"selected\"))\n || (this.opts.element.val() === \"\")\n || (this.opts.element.val() === undefined)\n || (this.opts.element.val() === null);\n },\n\n // single\n prepareOpts: function () {\n var opts = this.parent.prepareOpts.apply(this, arguments),\n self=this;\n\n if (opts.element.get(0).tagName.toLowerCase() === \"select\") {\n // install the selection initializer\n opts.initSelection = function (element, callback) {\n var selected = element.find(\"option\").filter(function() { return this.selected && !this.disabled });\n // a single select box always has a value, no need to null check 'selected'\n callback(self.optionToData(selected));\n };\n } else if (\"data\" in opts) {\n // install default initSelection when applied to hidden input and data is local\n opts.initSelection = opts.initSelection || function (element, callback) {\n var id = element.val();\n //search in data by id, storing the actual matching item\n var match = null;\n opts.query({\n matcher: function(term, text, el){\n var is_match = equal(id, opts.id(el));\n if (is_match) {\n match = el;\n }\n return is_match;\n },\n callback: !$.isFunction(callback) ? $.noop : function() {\n callback(match);\n }\n });\n };\n }\n\n return opts;\n },\n\n // single\n getPlaceholder: function() {\n // if a placeholder is specified on a single select without a valid placeholder option ignore it\n if (this.select) {\n if (this.getPlaceholderOption() === undefined) {\n return undefined;\n }\n }\n\n return this.parent.getPlaceholder.apply(this, arguments);\n },\n\n // single\n setPlaceholder: function () {\n var placeholder = this.getPlaceholder();\n\n if (this.isPlaceholderOptionSelected() && placeholder !== undefined) {\n\n // check for a placeholder option if attached to a select\n if (this.select && this.getPlaceholderOption() === undefined) return;\n\n this.selection.find(\".select2-chosen\").html(this.opts.escapeMarkup(placeholder));\n\n this.selection.addClass(\"select2-default\");\n\n this.container.removeClass(\"select2-allowclear\");\n }\n },\n\n // single\n postprocessResults: function (data, initial, noHighlightUpdate) {\n var selected = 0, self = this, showSearchInput = true;\n\n // find the selected element in the result list\n\n this.findHighlightableChoices().each2(function (i, elm) {\n if (equal(self.id(elm.data(\"select2-data\")), self.opts.element.val())) {\n selected = i;\n return false;\n }\n });\n\n // and highlight it\n if (noHighlightUpdate !== false) {\n if (initial === true && selected >= 0) {\n this.highlight(selected);\n } else {\n this.highlight(0);\n }\n }\n\n // hide the search box if this is the first we got the results and there are enough of them for search\n\n if (initial === true) {\n var min = this.opts.minimumResultsForSearch;\n if (min >= 0) {\n this.showSearch(countResults(data.results) >= min);\n }\n }\n },\n\n // single\n showSearch: function(showSearchInput) {\n if (this.showSearchInput === showSearchInput) return;\n\n this.showSearchInput = showSearchInput;\n\n this.dropdown.find(\".select2-search\").toggleClass(\"select2-search-hidden\", !showSearchInput);\n this.dropdown.find(\".select2-search\").toggleClass(\"select2-offscreen\", !showSearchInput);\n //add \"select2-with-searchbox\" to the container if search box is shown\n $(this.dropdown, this.container).toggleClass(\"select2-with-searchbox\", showSearchInput);\n },\n\n // single\n onSelect: function (data, options) {\n\n if (!this.triggerSelect(data)) { return; }\n\n var old = this.opts.element.val(),\n oldData = this.data();\n\n this.opts.element.val(this.id(data));\n this.updateSelection(data);\n\n this.opts.element.trigger({ type: \"select2-selected\", val: this.id(data), choice: data });\n\n this.nextSearchTerm = this.opts.nextSearchTerm(data, this.search.val());\n this.close();\n\n if ((!options || !options.noFocus) && this.opts.shouldFocusInput(this)) {\n this.focusser.focus();\n }\n\n if (!equal(old, this.id(data))) {\n this.triggerChange({ added: data, removed: oldData });\n }\n },\n\n // single\n updateSelection: function (data) {\n\n var container=this.selection.find(\".select2-chosen\"), formatted, cssClass;\n\n this.selection.data(\"select2-data\", data);\n\n container.empty();\n if (data !== null) {\n formatted=this.opts.formatSelection(data, container, this.opts.escapeMarkup);\n }\n if (formatted !== undefined) {\n container.append(formatted);\n }\n cssClass=this.opts.formatSelectionCssClass(data, container);\n if (cssClass !== undefined) {\n container.addClass(cssClass);\n }\n\n this.selection.removeClass(\"select2-default\");\n\n if (this.opts.allowClear && this.getPlaceholder() !== undefined) {\n this.container.addClass(\"select2-allowclear\");\n }\n },\n\n // single\n val: function () {\n var val,\n triggerChange = false,\n data = null,\n self = this,\n oldData = this.data();\n\n if (arguments.length === 0) {\n return this.opts.element.val();\n }\n\n val = arguments[0];\n\n if (arguments.length > 1) {\n triggerChange = arguments[1];\n }\n\n if (this.select) {\n this.select\n .val(val)\n .find(\"option\").filter(function() { return this.selected }).each2(function (i, elm) {\n data = self.optionToData(elm);\n return false;\n });\n this.updateSelection(data);\n this.setPlaceholder();\n if (triggerChange) {\n this.triggerChange({added: data, removed:oldData});\n }\n } else {\n // val is an id. !val is true for [undefined,null,'',0] - 0 is legal\n if (!val && val !== 0) {\n this.clear(triggerChange);\n return;\n }\n if (this.opts.initSelection === undefined) {\n throw new Error(\"cannot call val() if initSelection() is not defined\");\n }\n this.opts.element.val(val);\n this.opts.initSelection(this.opts.element, function(data){\n self.opts.element.val(!data ? \"\" : self.id(data));\n self.updateSelection(data);\n self.setPlaceholder();\n if (triggerChange) {\n self.triggerChange({added: data, removed:oldData});\n }\n });\n }\n },\n\n // single\n clearSearch: function () {\n this.search.val(\"\");\n this.focusser.val(\"\");\n },\n\n // single\n data: function(value) {\n var data,\n triggerChange = false;\n\n if (arguments.length === 0) {\n data = this.selection.data(\"select2-data\");\n if (data == undefined) data = null;\n return data;\n } else {\n if (arguments.length > 1) {\n triggerChange = arguments[1];\n }\n if (!value) {\n this.clear(triggerChange);\n } else {\n data = this.data();\n this.opts.element.val(!value ? \"\" : this.id(value));\n this.updateSelection(value);\n if (triggerChange) {\n this.triggerChange({added: value, removed:data});\n }\n }\n }\n }\n });\n\n MultiSelect2 = clazz(AbstractSelect2, {\n\n // multi\n createContainer: function () {\n var container = $(document.createElement(\"div\")).attr({\n \"class\": \"select2-container select2-container-multi\"\n }).html([\n \"
    \",\n \"
  • \",\n \" \",\n \" \",\n \"
  • \",\n \"
\",\n \"
\",\n \"
    \",\n \"
\",\n \"
\"].join(\"\"));\n return container;\n },\n\n // multi\n prepareOpts: function () {\n var opts = this.parent.prepareOpts.apply(this, arguments),\n self=this;\n\n // TODO validate placeholder is a string if specified\n\n if (opts.element.get(0).tagName.toLowerCase() === \"select\") {\n // install the selection initializer\n opts.initSelection = function (element, callback) {\n\n var data = [];\n\n element.find(\"option\").filter(function() { return this.selected && !this.disabled }).each2(function (i, elm) {\n data.push(self.optionToData(elm));\n });\n callback(data);\n };\n } else if (\"data\" in opts) {\n // install default initSelection when applied to hidden input and data is local\n opts.initSelection = opts.initSelection || function (element, callback) {\n var ids = splitVal(element.val(), opts.separator);\n //search in data by array of ids, storing matching items in a list\n var matches = [];\n opts.query({\n matcher: function(term, text, el){\n var is_match = $.grep(ids, function(id) {\n return equal(id, opts.id(el));\n }).length;\n if (is_match) {\n matches.push(el);\n }\n return is_match;\n },\n callback: !$.isFunction(callback) ? $.noop : function() {\n // reorder matches based on the order they appear in the ids array because right now\n // they are in the order in which they appear in data array\n var ordered = [];\n for (var i = 0; i < ids.length; i++) {\n var id = ids[i];\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n if (equal(id, opts.id(match))) {\n ordered.push(match);\n matches.splice(j, 1);\n break;\n }\n }\n }\n callback(ordered);\n }\n });\n };\n }\n\n return opts;\n },\n\n // multi\n selectChoice: function (choice) {\n\n var selected = this.container.find(\".select2-search-choice-focus\");\n if (selected.length && choice && choice[0] == selected[0]) {\n\n } else {\n if (selected.length) {\n this.opts.element.trigger(\"choice-deselected\", selected);\n }\n selected.removeClass(\"select2-search-choice-focus\");\n if (choice && choice.length) {\n this.close();\n choice.addClass(\"select2-search-choice-focus\");\n this.opts.element.trigger(\"choice-selected\", choice);\n }\n }\n },\n\n // multi\n destroy: function() {\n $(\"label[for='\" + this.search.attr('id') + \"']\")\n .attr('for', this.opts.element.attr(\"id\"));\n this.parent.destroy.apply(this, arguments);\n\n cleanupJQueryElements.call(this,\n \"searchContainer\",\n \"selection\"\n );\n },\n\n // multi\n initContainer: function () {\n\n var selector = \".select2-choices\", selection;\n\n this.searchContainer = this.container.find(\".select2-search-field\");\n this.selection = selection = this.container.find(selector);\n\n var _this = this;\n this.selection.on(\"click\", \".select2-search-choice:not(.select2-locked)\", function (e) {\n //killEvent(e);\n _this.search[0].focus();\n _this.selectChoice($(this));\n });\n\n // rewrite labels from original element to focusser\n this.search.attr(\"id\", \"s2id_autogen\"+nextUid());\n\n this.search.prev()\n .text($(\"label[for='\" + this.opts.element.attr(\"id\") + \"']\").text())\n .attr('for', this.search.attr('id'));\n\n this.search.on(\"input paste\", this.bind(function() {\n if (this.search.attr('placeholder') && this.search.val().length == 0) return;\n if (!this.isInterfaceEnabled()) return;\n if (!this.opened()) {\n this.open();\n }\n }));\n\n this.search.attr(\"tabindex\", this.elementTabIndex);\n\n this.keydowns = 0;\n this.search.on(\"keydown\", this.bind(function (e) {\n if (!this.isInterfaceEnabled()) return;\n\n ++this.keydowns;\n var selected = selection.find(\".select2-search-choice-focus\");\n var prev = selected.prev(\".select2-search-choice:not(.select2-locked)\");\n var next = selected.next(\".select2-search-choice:not(.select2-locked)\");\n var pos = getCursorInfo(this.search);\n\n if (selected.length &&\n (e.which == KEY.LEFT || e.which == KEY.RIGHT || e.which == KEY.BACKSPACE || e.which == KEY.DELETE || e.which == KEY.ENTER)) {\n var selectedChoice = selected;\n if (e.which == KEY.LEFT && prev.length) {\n selectedChoice = prev;\n }\n else if (e.which == KEY.RIGHT) {\n selectedChoice = next.length ? next : null;\n }\n else if (e.which === KEY.BACKSPACE) {\n if (this.unselect(selected.first())) {\n this.search.width(10);\n selectedChoice = prev.length ? prev : next;\n }\n } else if (e.which == KEY.DELETE) {\n if (this.unselect(selected.first())) {\n this.search.width(10);\n selectedChoice = next.length ? next : null;\n }\n } else if (e.which == KEY.ENTER) {\n selectedChoice = null;\n }\n\n this.selectChoice(selectedChoice);\n killEvent(e);\n if (!selectedChoice || !selectedChoice.length) {\n this.open();\n }\n return;\n } else if (((e.which === KEY.BACKSPACE && this.keydowns == 1)\n || e.which == KEY.LEFT) && (pos.offset == 0 && !pos.length)) {\n\n this.selectChoice(selection.find(\".select2-search-choice:not(.select2-locked)\").last());\n killEvent(e);\n return;\n } else {\n this.selectChoice(null);\n }\n\n if (this.opened()) {\n switch (e.which) {\n case KEY.UP:\n case KEY.DOWN:\n this.moveHighlight((e.which === KEY.UP) ? -1 : 1);\n killEvent(e);\n return;\n case KEY.ENTER:\n this.selectHighlighted();\n killEvent(e);\n return;\n case KEY.TAB:\n this.selectHighlighted({noFocus:true});\n this.close();\n return;\n case KEY.ESC:\n this.cancel(e);\n killEvent(e);\n return;\n }\n }\n\n if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e)\n || e.which === KEY.BACKSPACE || e.which === KEY.ESC) {\n return;\n }\n\n if (e.which === KEY.ENTER) {\n if (this.opts.openOnEnter === false) {\n return;\n } else if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {\n return;\n }\n }\n\n this.open();\n\n if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {\n // prevent the page from scrolling\n killEvent(e);\n }\n\n if (e.which === KEY.ENTER) {\n // prevent form from being submitted\n killEvent(e);\n }\n\n }));\n\n this.search.on(\"keyup\", this.bind(function (e) {\n this.keydowns = 0;\n this.resizeSearch();\n })\n );\n\n this.search.on(\"blur\", this.bind(function(e) {\n this.container.removeClass(\"select2-container-active\");\n this.search.removeClass(\"select2-focused\");\n this.selectChoice(null);\n if (!this.opened()) this.clearSearch();\n e.stopImmediatePropagation();\n this.opts.element.trigger($.Event(\"select2-blur\"));\n }));\n\n this.container.on(\"click\", selector, this.bind(function (e) {\n if (!this.isInterfaceEnabled()) return;\n if ($(e.target).closest(\".select2-search-choice\").length > 0) {\n // clicked inside a select2 search choice, do not open\n return;\n }\n this.selectChoice(null);\n this.clearPlaceholder();\n if (!this.container.hasClass(\"select2-container-active\")) {\n this.opts.element.trigger($.Event(\"select2-focus\"));\n }\n this.open();\n this.focusSearch();\n e.preventDefault();\n }));\n\n this.container.on(\"focus\", selector, this.bind(function () {\n if (!this.isInterfaceEnabled()) return;\n if (!this.container.hasClass(\"select2-container-active\")) {\n this.opts.element.trigger($.Event(\"select2-focus\"));\n }\n this.container.addClass(\"select2-container-active\");\n this.dropdown.addClass(\"select2-drop-active\");\n this.clearPlaceholder();\n }));\n\n this.initContainerWidth();\n this.opts.element.addClass(\"select2-offscreen\");\n\n // set the placeholder if necessary\n this.clearSearch();\n },\n\n // multi\n enableInterface: function() {\n if (this.parent.enableInterface.apply(this, arguments)) {\n this.search.prop(\"disabled\", !this.isInterfaceEnabled());\n }\n },\n\n // multi\n initSelection: function () {\n var data;\n if (this.opts.element.val() === \"\" && this.opts.element.text() === \"\") {\n this.updateSelection([]);\n this.close();\n // set the placeholder if necessary\n this.clearSearch();\n }\n if (this.select || this.opts.element.val() !== \"\") {\n var self = this;\n this.opts.initSelection.call(null, this.opts.element, function(data){\n if (data !== undefined && data !== null) {\n self.updateSelection(data);\n self.close();\n // set the placeholder if necessary\n self.clearSearch();\n }\n });\n }\n },\n\n // multi\n clearSearch: function () {\n var placeholder = this.getPlaceholder(),\n maxWidth = this.getMaxSearchWidth();\n\n if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass(\"select2-focused\") === false) {\n this.search.val(placeholder).addClass(\"select2-default\");\n // stretch the search box to full width of the container so as much of the placeholder is visible as possible\n // we could call this.resizeSearch(), but we do not because that requires a sizer and we do not want to create one so early because of a firefox bug, see #944\n this.search.width(maxWidth > 0 ? maxWidth : this.container.css(\"width\"));\n } else {\n this.search.val(\"\").width(10);\n }\n },\n\n // multi\n clearPlaceholder: function () {\n if (this.search.hasClass(\"select2-default\")) {\n this.search.val(\"\").removeClass(\"select2-default\");\n }\n },\n\n // multi\n opening: function () {\n this.clearPlaceholder(); // should be done before super so placeholder is not used to search\n this.resizeSearch();\n\n this.parent.opening.apply(this, arguments);\n\n this.focusSearch();\n\n // initializes search's value with nextSearchTerm (if defined by user)\n // ignore nextSearchTerm if the dropdown is opened by the user pressing a letter\n if(this.search.val() === \"\") {\n if(this.nextSearchTerm != undefined){\n this.search.val(this.nextSearchTerm);\n this.search.select();\n }\n }\n\n this.updateResults(true);\n if (this.opts.shouldFocusInput(this)) {\n this.search.focus();\n }\n this.opts.element.trigger($.Event(\"select2-open\"));\n },\n\n // multi\n close: function () {\n if (!this.opened()) return;\n this.parent.close.apply(this, arguments);\n },\n\n // multi\n focus: function () {\n this.close();\n this.search.focus();\n },\n\n // multi\n isFocused: function () {\n return this.search.hasClass(\"select2-focused\");\n },\n\n // multi\n updateSelection: function (data) {\n var ids = [], filtered = [], self = this;\n\n // filter out duplicates\n $(data).each(function () {\n if (indexOf(self.id(this), ids) < 0) {\n ids.push(self.id(this));\n filtered.push(this);\n }\n });\n data = filtered;\n\n this.selection.find(\".select2-search-choice\").remove();\n $(data).each(function () {\n self.addSelectedChoice(this);\n });\n self.postprocessResults();\n },\n\n // multi\n tokenize: function() {\n var input = this.search.val();\n input = this.opts.tokenizer.call(this, input, this.data(), this.bind(this.onSelect), this.opts);\n if (input != null && input != undefined) {\n this.search.val(input);\n if (input.length > 0) {\n this.open();\n }\n }\n\n },\n\n // multi\n onSelect: function (data, options) {\n\n if (!this.triggerSelect(data) || data.text === \"\") { return; }\n\n this.addSelectedChoice(data);\n\n this.opts.element.trigger({ type: \"selected\", val: this.id(data), choice: data });\n\n // keep track of the search's value before it gets cleared\n this.nextSearchTerm = this.opts.nextSearchTerm(data, this.search.val());\n\n this.clearSearch();\n this.updateResults();\n\n if (this.select || !this.opts.closeOnSelect) this.postprocessResults(data, false, this.opts.closeOnSelect===true);\n\n if (this.opts.closeOnSelect) {\n this.close();\n this.search.width(10);\n } else {\n if (this.countSelectableResults()>0) {\n this.search.width(10);\n this.resizeSearch();\n if (this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize()) {\n // if we reached max selection size repaint the results so choices\n // are replaced with the max selection reached message\n this.updateResults(true);\n } else {\n // initializes search's value with nextSearchTerm and update search result\n if(this.nextSearchTerm != undefined){\n this.search.val(this.nextSearchTerm);\n this.updateResults();\n this.search.select();\n }\n }\n this.positionDropdown();\n } else {\n // if nothing left to select close\n this.close();\n this.search.width(10);\n }\n }\n\n // since its not possible to select an element that has already been\n // added we do not need to check if this is a new element before firing change\n this.triggerChange({ added: data });\n\n if (!options || !options.noFocus)\n this.focusSearch();\n },\n\n // multi\n cancel: function () {\n this.close();\n this.focusSearch();\n },\n\n addSelectedChoice: function (data) {\n var enableChoice = !data.locked,\n enabledItem = $(\n \"
  • \" +\n \"
    \" +\n \"
    \" +\n \"
  • \"),\n disabledItem = $(\n \"
  • \" +\n \"
    \" +\n \"
  • \");\n var choice = enableChoice ? enabledItem : disabledItem,\n id = this.id(data),\n val = this.getVal(),\n formatted,\n cssClass;\n\n formatted=this.opts.formatSelection(data, choice.find(\"div\"), this.opts.escapeMarkup);\n if (formatted != undefined) {\n choice.find(\"div\").replaceWith(\"
    \"+formatted+\"
    \");\n }\n cssClass=this.opts.formatSelectionCssClass(data, choice.find(\"div\"));\n if (cssClass != undefined) {\n choice.addClass(cssClass);\n }\n\n if(enableChoice){\n choice.find(\".select2-search-choice-close\")\n .on(\"mousedown\", killEvent)\n .on(\"click dblclick\", this.bind(function (e) {\n if (!this.isInterfaceEnabled()) return;\n\n this.unselect($(e.target));\n this.selection.find(\".select2-search-choice-focus\").removeClass(\"select2-search-choice-focus\");\n killEvent(e);\n this.close();\n this.focusSearch();\n })).on(\"focus\", this.bind(function () {\n if (!this.isInterfaceEnabled()) return;\n this.container.addClass(\"select2-container-active\");\n this.dropdown.addClass(\"select2-drop-active\");\n }));\n }\n\n choice.data(\"select2-data\", data);\n choice.insertBefore(this.searchContainer);\n\n val.push(id);\n this.setVal(val);\n },\n\n // multi\n unselect: function (selected) {\n var val = this.getVal(),\n data,\n index;\n selected = selected.closest(\".select2-search-choice\");\n\n if (selected.length === 0) {\n throw \"Invalid argument: \" + selected + \". Must be .select2-search-choice\";\n }\n\n data = selected.data(\"select2-data\");\n\n if (!data) {\n // prevent a race condition when the 'x' is clicked really fast repeatedly the event can be queued\n // and invoked on an element already removed\n return;\n }\n\n var evt = $.Event(\"select2-removing\");\n evt.val = this.id(data);\n evt.choice = data;\n this.opts.element.trigger(evt);\n\n if (evt.isDefaultPrevented()) {\n return false;\n }\n\n while((index = indexOf(this.id(data), val)) >= 0) {\n val.splice(index, 1);\n this.setVal(val);\n if (this.select) this.postprocessResults();\n }\n\n selected.remove();\n\n this.opts.element.trigger({ type: \"select2-removed\", val: this.id(data), choice: data });\n this.triggerChange({ removed: data });\n\n return true;\n },\n\n // multi\n postprocessResults: function (data, initial, noHighlightUpdate) {\n var val = this.getVal(),\n choices = this.results.find(\".select2-result\"),\n compound = this.results.find(\".select2-result-with-children\"),\n self = this;\n\n choices.each2(function (i, choice) {\n var id = self.id(choice.data(\"select2-data\"));\n if (indexOf(id, val) >= 0) {\n choice.addClass(\"select2-selected\");\n // mark all children of the selected parent as selected\n choice.find(\".select2-result-selectable\").addClass(\"select2-selected\");\n }\n });\n\n compound.each2(function(i, choice) {\n // hide an optgroup if it doesn't have any selectable children\n if (!choice.is('.select2-result-selectable')\n && choice.find(\".select2-result-selectable:not(.select2-selected)\").length === 0) {\n choice.addClass(\"select2-selected\");\n }\n });\n\n if (this.highlight() == -1 && noHighlightUpdate !== false){\n self.highlight(0);\n }\n\n //If all results are chosen render formatNoMatches\n if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){\n if(!data || data && !data.more && this.results.find(\".select2-no-results\").length === 0) {\n if (checkFormatter(self.opts.formatNoMatches, \"formatNoMatches\")) {\n this.results.append(\"
  • \" + evaluate(self.opts.formatNoMatches, self.opts.element, self.search.val()) + \"
  • \");\n }\n }\n }\n\n },\n\n // multi\n getMaxSearchWidth: function() {\n return this.selection.width() - getSideBorderPadding(this.search);\n },\n\n // multi\n resizeSearch: function () {\n var minimumWidth, left, maxWidth, containerLeft, searchWidth,\n sideBorderPadding = getSideBorderPadding(this.search);\n\n minimumWidth = measureTextWidth(this.search) + 10;\n\n left = this.search.offset().left;\n\n maxWidth = this.selection.width();\n containerLeft = this.selection.offset().left;\n\n searchWidth = maxWidth - (left - containerLeft) - sideBorderPadding;\n\n if (searchWidth < minimumWidth) {\n searchWidth = maxWidth - sideBorderPadding;\n }\n\n if (searchWidth < 40) {\n searchWidth = maxWidth - sideBorderPadding;\n }\n\n if (searchWidth <= 0) {\n searchWidth = minimumWidth;\n }\n\n this.search.width(Math.floor(searchWidth));\n },\n\n // multi\n getVal: function () {\n var val;\n if (this.select) {\n val = this.select.val();\n return val === null ? [] : val;\n } else {\n val = this.opts.element.val();\n return splitVal(val, this.opts.separator);\n }\n },\n\n // multi\n setVal: function (val) {\n var unique;\n if (this.select) {\n this.select.val(val);\n } else {\n unique = [];\n // filter out duplicates\n $(val).each(function () {\n if (indexOf(this, unique) < 0) unique.push(this);\n });\n this.opts.element.val(unique.length === 0 ? \"\" : unique.join(this.opts.separator));\n }\n },\n\n // multi\n buildChangeDetails: function (old, current) {\n var current = current.slice(0),\n old = old.slice(0);\n\n // remove intersection from each array\n for (var i = 0; i < current.length; i++) {\n for (var j = 0; j < old.length; j++) {\n if (equal(this.opts.id(current[i]), this.opts.id(old[j]))) {\n current.splice(i, 1);\n if(i>0){\n \ti--;\n }\n old.splice(j, 1);\n j--;\n }\n }\n }\n\n return {added: current, removed: old};\n },\n\n\n // multi\n val: function (val, triggerChange) {\n var oldData, self=this;\n\n if (arguments.length === 0) {\n return this.getVal();\n }\n\n oldData=this.data();\n if (!oldData.length) oldData=[];\n\n // val is an id. !val is true for [undefined,null,'',0] - 0 is legal\n if (!val && val !== 0) {\n this.opts.element.val(\"\");\n this.updateSelection([]);\n this.clearSearch();\n if (triggerChange) {\n this.triggerChange({added: this.data(), removed: oldData});\n }\n return;\n }\n\n // val is a list of ids\n this.setVal(val);\n\n if (this.select) {\n this.opts.initSelection(this.select, this.bind(this.updateSelection));\n if (triggerChange) {\n this.triggerChange(this.buildChangeDetails(oldData, this.data()));\n }\n } else {\n if (this.opts.initSelection === undefined) {\n throw new Error(\"val() cannot be called if initSelection() is not defined\");\n }\n\n this.opts.initSelection(this.opts.element, function(data){\n var ids=$.map(data, self.id);\n self.setVal(ids);\n self.updateSelection(data);\n self.clearSearch();\n if (triggerChange) {\n self.triggerChange(self.buildChangeDetails(oldData, self.data()));\n }\n });\n }\n this.clearSearch();\n },\n\n // multi\n onSortStart: function() {\n if (this.select) {\n throw new Error(\"Sorting of elements is not supported when attached to instead.\");\n }\n\n // collapse search field into 0 width so its container can be collapsed as well\n this.search.width(0);\n // hide the container\n this.searchContainer.hide();\n },\n\n // multi\n onSortEnd:function() {\n\n var val=[], self=this;\n\n // show search and move it to the end of the list\n this.searchContainer.show();\n // make sure the search container is the last item in the list\n this.searchContainer.appendTo(this.searchContainer.parent());\n // since we collapsed the width in dragStarted, we resize it here\n this.resizeSearch();\n\n // update selection\n this.selection.find(\".select2-search-choice\").each(function() {\n val.push(self.opts.id($(this).data(\"select2-data\")));\n });\n this.setVal(val);\n this.triggerChange();\n },\n\n // multi\n data: function(values, triggerChange) {\n var self=this, ids, old;\n if (arguments.length === 0) {\n return this.selection\n .children(\".select2-search-choice\")\n .map(function() { return $(this).data(\"select2-data\"); })\n .get();\n } else {\n old = this.data();\n if (!values) { values = []; }\n ids = $.map(values, function(e) { return self.opts.id(e); });\n this.setVal(ids);\n this.updateSelection(values);\n this.clearSearch();\n if (triggerChange) {\n this.triggerChange(this.buildChangeDetails(old, this.data()));\n }\n }\n }\n });\n\n $.fn.select2 = function () {\n\n var args = Array.prototype.slice.call(arguments, 0),\n opts,\n select2,\n method, value, multiple,\n allowedMethods = [\"val\", \"destroy\", \"opened\", \"open\", \"close\", \"focus\", \"isFocused\", \"container\", \"dropdown\", \"onSortStart\", \"onSortEnd\", \"enable\", \"disable\", \"readonly\", \"positionDropdown\", \"data\", \"search\"],\n valueMethods = [\"opened\", \"isFocused\", \"container\", \"dropdown\"],\n propertyMethods = [\"val\", \"data\"],\n methodsMap = { search: \"externalSearch\" };\n\n this.each(function () {\n if (args.length === 0 || typeof(args[0]) === \"object\") {\n opts = args.length === 0 ? {} : $.extend({}, args[0]);\n opts.element = $(this);\n\n if (opts.element.get(0).tagName.toLowerCase() === \"select\") {\n multiple = opts.element.prop(\"multiple\");\n } else {\n multiple = opts.multiple || false;\n if (\"tags\" in opts) {opts.multiple = multiple = true;}\n }\n\n select2 = multiple ? new window.Select2[\"class\"].multi() : new window.Select2[\"class\"].single();\n select2.init(opts);\n } else if (typeof(args[0]) === \"string\") {\n\n if (indexOf(args[0], allowedMethods) < 0) {\n throw \"Unknown method: \" + args[0];\n }\n\n value = undefined;\n select2 = $(this).data(\"select2\");\n if (select2 === undefined) return;\n\n method=args[0];\n\n if (method === \"container\") {\n value = select2.container;\n } else if (method === \"dropdown\") {\n value = select2.dropdown;\n } else {\n if (methodsMap[method]) method = methodsMap[method];\n\n value = select2[method].apply(select2, args.slice(1));\n }\n if (indexOf(args[0], valueMethods) >= 0\n || (indexOf(args[0], propertyMethods) >= 0 && args.length == 1)) {\n return false; // abort the iteration, ready to return first matched value\n }\n } else {\n throw \"Invalid arguments to select2 plugin: \" + args;\n }\n });\n return (value === undefined) ? this : value;\n };\n\n // plugin defaults, accessible to users\n $.fn.select2.defaults = {\n width: \"copy\",\n loadMorePadding: 0,\n closeOnSelect: true,\n openOnEnter: true,\n containerCss: {},\n dropdownCss: {},\n containerCssClass: \"\",\n dropdownCssClass: \"\",\n formatResult: function(result, container, query, escapeMarkup) {\n var markup=[];\n markMatch(result.text, query.term, markup, escapeMarkup);\n return markup.join(\"\");\n },\n formatSelection: function (data, container, escapeMarkup) {\n return data ? escapeMarkup(data.text) : undefined;\n },\n sortResults: function (results, container, query) {\n return results;\n },\n formatResultCssClass: function(data) {return data.css;},\n formatSelectionCssClass: function(data, container) {return undefined;},\n minimumResultsForSearch: 0,\n minimumInputLength: 0,\n maximumInputLength: null,\n maximumSelectionSize: 0,\n id: function (e) { return e == undefined ? null : e.id; },\n matcher: function(term, text) {\n return stripDiacritics(''+text).toUpperCase().indexOf(stripDiacritics(''+term).toUpperCase()) >= 0;\n },\n separator: \",\",\n tokenSeparators: [],\n tokenizer: defaultTokenizer,\n escapeMarkup: defaultEscapeMarkup,\n blurOnChange: false,\n selectOnBlur: false,\n adaptContainerCssClass: function(c) { return c; },\n adaptDropdownCssClass: function(c) { return null; },\n nextSearchTerm: function(selectedObject, currentSearchTerm) { return undefined; },\n searchInputPlaceholder: '',\n createSearchChoicePosition: 'top',\n shouldFocusInput: function (instance) {\n // Attempt to detect touch devices\n var supportsTouchEvents = (('ontouchstart' in window) ||\n (navigator.msMaxTouchPoints > 0));\n\n // Only devices which support touch events should be special cased\n if (!supportsTouchEvents) {\n return true;\n }\n\n // Never focus the input if search is disabled\n if (instance.opts.minimumResultsForSearch < 0) {\n return false;\n }\n\n return true;\n }\n };\n\n $.fn.select2.locales = [];\n\n $.fn.select2.locales['en'] = {\n formatMatches: function (matches) { if (matches === 1) { return \"One result is available, press enter to select it.\"; } return matches + \" results are available, use up and down arrow keys to navigate.\"; },\n formatNoMatches: function () { return \"No matches found\"; },\n formatAjaxError: function (jqXHR, textStatus, errorThrown) { return \"Loading failed\"; },\n formatInputTooShort: function (input, min) { var n = min - input.length; return \"Please enter \" + n + \" or more character\" + (n == 1 ? \"\" : \"s\"); },\n formatInputTooLong: function (input, max) { var n = input.length - max; return \"Please delete \" + n + \" character\" + (n == 1 ? \"\" : \"s\"); },\n formatSelectionTooBig: function (limit) { return \"You can only select \" + limit + \" item\" + (limit == 1 ? \"\" : \"s\"); },\n formatLoadMore: function (pageNumber) { return \"Loading more results…\"; },\n formatSearching: function () { return \"Searching…\"; },\n };\n\n $.extend($.fn.select2.defaults, $.fn.select2.locales['en']);\n\n $.fn.select2.ajaxDefaults = {\n transport: $.ajax,\n params: {\n type: \"GET\",\n cache: false,\n dataType: \"json\"\n }\n };\n\n // exports\n window.Select2 = {\n query: {\n ajax: ajax,\n local: local,\n tags: tags\n }, util: {\n debounce: debounce,\n markMatch: markMatch,\n escapeMarkup: defaultEscapeMarkup,\n stripDiacritics: stripDiacritics\n }, \"class\": {\n \"abstract\": AbstractSelect2,\n \"single\": SingleSelect2,\n \"multi\": MultiSelect2\n }\n };\n\n}(jQuery));\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-map -- safe\n WeakMap: WeakMap,\n set: uncurryThis(WeakMapPrototype.set),\n get: uncurryThis(WeakMapPrototype.get),\n has: uncurryThis(WeakMapPrototype.has),\n remove: uncurryThis(WeakMapPrototype['delete'])\n};\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $fromBase64 = require('../internals/uint8-from-base64');\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.fromBase64 || !function () {\n // Webkit not throw an error on odd length string\n try {\n Uint8Array.fromBase64('a');\n return;\n } catch (error) { /* empty */ }\n try {\n Uint8Array.fromBase64('', null);\n } catch (error) {\n return true;\n }\n}();\n\n// `Uint8Array.fromBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n fromBase64: function fromBase64(string /* , options */) {\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);\n return arrayFromConstructorAndList(Uint8Array, result.bytes);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(aMap(this), key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar isRawJSON = require('../internals/is-raw-json');\n\n// `JSON.isRawJSON` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n isRawJSON: isRawJSON\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n parse: function parse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return new URL(urlString, base);\n } catch (error) {\n return null;\n }\n }\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar globalThis = require('../internals/global-this');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = globalThis.URL;\nvar TypeError = globalThis.TypeError;\nvar parseInt = globalThis.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.1.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\n// eslint-disable-next-line no-unassigned-vars -- expected `undefined` value\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n return currLength > maxLength ? currStart : maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n }\n return join(result, '.');\n }\n\n // ipv6\n if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n }\n\n return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.es/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n isView: ArrayBufferViewCore.isView\n});\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (typeof Symbol === 'function' && context[Symbol.iterator]) {\n var newContext = [];\n var iterator = context[Symbol.iterator]();\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n context = newContext;\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n });\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDbkUsWUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLFlBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBjb250ZXh0W1N5bWJvbC5pdGVyYXRvcl0pIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGV4dCA9IFtdO1xuICAgICAgICBjb25zdCBpdGVyYXRvciA9IGNvbnRleHRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBmb3IgKGxldCBpdCA9IGl0ZXJhdG9yLm5leHQoKTsgIWl0LmRvbmU7IGl0ID0gaXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgbmV3Q29udGV4dC5wdXNoKGl0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0ID0gbmV3Q29udGV4dDtcbiAgICAgICAgZm9yIChsZXQgaiA9IGNvbnRleHQubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihpLCBpLCBpID09PSBjb250ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIC8vIFdlJ3JlIHJ1bm5pbmcgdGhlIGl0ZXJhdGlvbnMgb25lIHN0ZXAgb3V0IG9mIHN5bmMgc28gd2UgY2FuIGRldGVjdFxuICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAvLyBhbiBpdGVybWVkaWF0ZSBrZXlzIGFycmF5LlxuICAgICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW9yS2V5ID0ga2V5O1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihwcmlvcktleSwgaSAtIDEsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIHJldCA9IGludmVyc2UodGhpcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar iterate = require('../internals/iterate');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\nvar fails = require('../internals/fails');\n\nvar Map = MapHelpers.Map;\nvar has = MapHelpers.has;\nvar get = MapHelpers.get;\nvar set = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// https://bugs.webkit.org/show_bug.cgi?id=271524\nvar DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () {\n return Map.groupBy('ab', function (it) {\n return it;\n }).get('a').length !== 1;\n});\n\n// `Map.groupBy` method\n// https://tc39.es/ecma262/#sec-map.groupby\n$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, {\n groupBy: function groupBy(items, callbackfn) {\n requireObjectCoercible(items);\n aCallable(callbackfn);\n var map = new Map();\n var k = 0;\n iterate(items, function (value) {\n var key = callbackfn(value, k++);\n if (!has(map, key)) set(map, key, [value]);\n else push(get(map, key), value);\n });\n return map;\n }\n});\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding) {\n\tif (\n\t\ttypeof thing === 'string'\n || Buffer.isBuffer(thing)\n || (useUint8Array && thing instanceof Uint8Array)\n || (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError('The \"data\" argument must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (obj, stringHandling) {\n if (!stringHandling || typeof obj !== 'string') anObject(obj);\n var method = getIteratorMethod(obj);\n return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar DISPOSE = wellKnownSymbol('dispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar DISPOSABLE_STACK = 'DisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);\n\nvar HINT = 'sync-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingDisposableStackInternalState = function (stack) {\n var internalState = getDisposableStackInternalState(stack);\n if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed');\n return internalState;\n};\n\nvar $DisposableStack = function DisposableStack() {\n setInternalState(anInstance(this, DisposableStackPrototype), {\n type: DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar DisposableStackPrototype = $DisposableStack.prototype;\n\ndefineBuiltIns(DisposableStackPrototype, {\n dispose: function dispose() {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state === DISPOSED) return;\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n while (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n disposeMethod();\n } catch (errorResult) {\n if (thrown) {\n suppressed = new SuppressedError(errorResult, suppressed);\n } else {\n thrown = true;\n suppressed = errorResult;\n }\n }\n }\n internalState.stack = null;\n if (thrown) throw suppressed;\n },\n use: function use(value) {\n addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getPendingDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getPendingDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getPendingDisposableStackInternalState(this);\n var newDisposableStack = new $DisposableStack();\n getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n return newDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getDisposableStackInternalState(this).state === DISPOSED;\n }\n});\n\ndefineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });\ndefineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n DisposableStack: $DisposableStack\n});\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {\n if (!isCallable(this) || !isObject(O)) return false;\n var P = this.prototype;\n return isObject(P) ? isPrototypeOf(P, O) : O instanceof this;\n }, HAS_INSTANCE) });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n return log(x) * LOG10E;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar IS_PURE = require('../internals/is-pure');\n\nvar FORCED = IS_PURE || function () {\n // Should not throw when an underlying iterator's `return` method is null\n // https://bugs.webkit.org/show_bug.cgi?id=288714\n try {\n // eslint-disable-next-line es/no-iterator -- required for testing\n Iterator.from({ 'return': null })['return']();\n } catch (error) {\n return true;\n }\n}();\n\nvar IteratorProxy = createIteratorProxy(function () {\n return call(this.next, this.iterator);\n}, true);\n\n// `Iterator.from` method\n// https://tc39.es/ecma262/#sec-iterator.from\n$({ target: 'Iterator', stat: true, forced: FORCED }, {\n from: function from(O) {\n var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O, true);\n return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)\n ? iteratorRecord.iterator\n : new IteratorProxy(iteratorRecord);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar globalIsFinite = globalThis.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\nvar min = Math.min;\n\n// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing\nvar FORCED = !''.substr || 'ab'.substr(-1) !== 'b';\n\n// `String.prototype.substr` method\n// https://tc39.es/ecma262/#sec-string.prototype.substr\n$({ target: 'String', proto: true, forced: FORCED }, {\n substr: function substr(start, length) {\n var that = toString(requireObjectCoercible(this));\n var size = that.length;\n var intStart = toIntegerOrInfinity(start);\n var intLength, intEnd;\n if (intStart === Infinity) intStart = 0;\n if (intStart < 0) intStart = max(size + intStart, 0);\n intLength = length === undefined ? size : toIntegerOrInfinity(length);\n if (intLength <= 0 || intLength === Infinity) return '';\n intEnd = min(intStart + intLength, size);\n return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar Promise = getBuiltIn('Promise');\n\nif (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {\n var O = this;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(O, 'return');\n if ($return) {\n Promise.resolve(call($return, O)).then(function () {\n resolve(undefined);\n }, reject);\n } else resolve(undefined);\n });\n });\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('./to-buffer');\nvar Transform = require('readable-stream').Transform;\nvar inherits = require('inherits');\n\nfunction HashBase(blockSize) {\n\tTransform.call(this);\n\n\tthis._block = Buffer.allocUnsafe(blockSize);\n\tthis._blockSize = blockSize;\n\tthis._blockOffset = 0;\n\tthis._length = [0, 0, 0, 0];\n\n\tthis._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.update(chunk, encoding);\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype._flush = function (callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.push(this.digest());\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype.update = function (data, encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\n\tvar dataBuffer = toBuffer(data, encoding); // asserts correct input type\n\n\t// consume data\n\tvar block = this._block;\n\tvar offset = 0;\n\twhile (this._blockOffset + dataBuffer.length - offset >= this._blockSize) {\n\t\tfor (var i = this._blockOffset; i < this._blockSize;) {\n\t\t\tblock[i] = dataBuffer[offset];\n\t\t\ti += 1;\n\t\t\toffset += 1;\n\t\t}\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\twhile (offset < dataBuffer.length) {\n\t\tblock[this._blockOffset] = dataBuffer[offset];\n\t\tthis._blockOffset += 1;\n\t\toffset += 1;\n\t}\n\n\t// update length\n\tfor (var j = 0, carry = dataBuffer.length * 8; carry > 0; ++j) {\n\t\tthis._length[j] += carry;\n\t\tcarry = (this._length[j] / 0x0100000000) | 0;\n\t\tif (carry > 0) {\n\t\t\tthis._length[j] -= 0x0100000000 * carry;\n\t\t}\n\t}\n\n\treturn this;\n};\n\nHashBase.prototype._update = function () {\n\tthrow new Error('_update is not implemented');\n};\n\nHashBase.prototype.digest = function (encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\tthis._finalized = true;\n\n\tvar digest = this._digest();\n\tif (encoding !== undefined) {\n\t\tdigest = digest.toString(encoding);\n\t}\n\n\t// reset state\n\tthis._block.fill(0);\n\tthis._blockOffset = 0;\n\tfor (var i = 0; i < 4; ++i) {\n\t\tthis._length[i] = 0;\n\t}\n\n\treturn digest;\n};\n\nHashBase.prototype._digest = function () {\n\tthrow new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-menu-entry__icon[data-v-bdb908d2]{height:16px;width:16px;margin:calc((var(--default-clickable-area) - 16px)/2);filter:var(--background-invert-if-dark)}.account-menu-entry__icon--active[data-v-bdb908d2]{filter:var(--primary-invert-if-dark)}.account-menu-entry__loading[data-v-bdb908d2]{height:20px;width:20px;margin:calc((var(--default-clickable-area) - 20px)/2)}.account-menu-entry[data-v-bdb908d2] .list-item-content__main{width:fit-content}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AccountMenu/AccountMenuEntry.vue\"],\"names\":[],\"mappings\":\"AAEC,2CACC,WAAA,CACA,UAAA,CACA,qDAAA,CACA,uCAAA,CAEA,mDACC,oCAAA,CAIF,8CACC,WAAA,CACA,UAAA,CACA,qDAAA,CAGD,8DACC,iBAAA\",\"sourcesContent\":[\"\\n.account-menu-entry {\\n\\t&__icon {\\n\\t\\theight: 16px;\\n\\t\\twidth: 16px;\\n\\t\\tmargin: calc((var(--default-clickable-area) - 16px) / 2); // 16px icon size\\n\\t\\tfilter: var(--background-invert-if-dark);\\n\\n\\t\\t&--active {\\n\\t\\t\\tfilter: var(--primary-invert-if-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__loading {\\n\\t\\theight: 20px;\\n\\t\\twidth: 20px;\\n\\t\\tmargin: calc((var(--default-clickable-area) - 20px) / 2); // 20px icon size\\n\\t}\\n\\n\\t:deep(.list-item-content__main) {\\n\\t\\twidth: fit-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n forEach: forEach\n});\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fromAsync = require('../internals/array-from-async');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-array-fromasync -- safe\nvar nativeFromAsync = Array.fromAsync;\n// https://bugs.webkit.org/show_bug.cgi?id=271703\nvar INCORRECT_CONSTRUCTURING = !nativeFromAsync || fails(function () {\n var counter = 0;\n nativeFromAsync.call(function () {\n counter++;\n return [];\n }, { length: 0 });\n return counter !== 1;\n});\n\n// `Array.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\n$({ target: 'Array', stat: true, forced: INCORRECT_CONSTRUCTURING }, {\n fromAsync: fromAsync\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = globalThis.parseInt;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\n// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n // Old FF bug\n // eslint-disable-next-line no-loss-of-precision -- required for old engines\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) !== -2e-17\n) ? function expm1(x) {\n var n = +x;\n return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1;\n} : $expm1;\n","/**\n * Strengthify - show the weakness of a password (uses zxcvbn for this)\n * https://github.com/MorrisJobke/strengthify\n *\n * Version: 0.5.9\n * Author: Morris Jobke (github.com/MorrisJobke) - original\n * Eve Ragins @ Eve Corp (github.com/eve-corp)\n *\n *\n * License:\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2013-2020 Morris Jobke \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* global jQuery */\n(function($) {\n $.fn.strengthify = function(paramOptions) {\n \"use strict\";\n\n var defaults = {\n zxcvbn: 'zxcvbn/zxcvbn.js',\n userInputs: [],\n titles: [\n 'Weakest',\n 'Weak',\n 'So-so',\n 'Good',\n 'Perfect'\n ],\n tilesOptions:{\n tooltip: true,\n element: false\n },\n drawTitles: false,\n drawMessage: false,\n drawBars: true,\n $addAfter: null,\n nonce: null\n };\n\n return this.each(function() {\n var options = $.extend(defaults, paramOptions);\n\n if (!options.drawTitles\n && !options.drawMessage\n && !options.drawBars)\n console.warn(\"expect at least one of 'drawTitles', 'drawMessage', or 'drawBars' to be true\");\n\n function getWrapperFor(id) {\n return $('div[data-strengthifyFor=\"' + id + '\"]');\n };\n\n function drawStrengthify() {\n var password = $(this).val().substring(0, 100),\n elemId = $(this).attr('id'),\n // hide strengthify if no input is provided\n opacity = (password === '') ? 0 : 1,\n // calculate result\n result = zxcvbn(password, options.userInputs),\n // setup some vars for later\n css = '',\n bsLevel = '',\n message = '',\n // cache jQuery selections\n $wrapper = getWrapperFor(elemId),\n $container = $wrapper.find('.strengthify-container'),\n $message = $wrapper.find('[data-strengthifyMessage]');\n\n\n $wrapper.children()\n .css('opacity', opacity)\n .css('-ms-filter',\n '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')\"'\n );\n\n if (options.onResult) {\n options.onResult(result);\n }\n\n // style strengthify bar\n // possible scores: 0-4\n switch (result.score) {\n case 0:\n case 1:\n css = 'password-bad';\n bsLevel = 'danger';\n message = result.feedback ? result.feedback.suggestions.join('
    ') : \"\";\n break;\n case 2:\n bsLevel = 'warning';\n message = result.feedback ? result.feedback.suggestions.join('
    ') : \"\";\n css = 'password-medium';\n break;\n case 3:\n css = 'password-good';\n bsLevel = 'info';\n message = \"Getting better.\";\n break;\n case 4:\n css = 'password-good';\n bsLevel = 'success';\n message = \"Looks good.\";\n break;\n }\n\n if ($message) {\n $message.removeAttr('class');\n $message.addClass('bg-' + bsLevel);\n\n // reset state for empty string password\n if (password === '') {\n message = '';\n }\n $message.html(message);\n }\n if ($container) {\n $container\n .attr('class', css + ' strengthify-container')\n // possible scores: 0-4\n .css(\n 'width',\n // if score is '0' it will be changed to '1' to\n // not hide strengthify if the password is extremely weak\n ((result.score === 0 ? 1 : result.score) * 25) + '%'\n );\n\n // reset state for empty string password\n if (password === '') {\n $container.css('width', 0);\n }\n }\n\n if (options.drawTitles) {\n // set a title for the wrapper\n if(options.tilesOptions.tooltip){\n $wrapper.attr(\n 'title',\n options.titles[result.score]\n ).tooltip({\n placement: 'bottom',\n trigger: 'manual',\n }).tooltip(\n 'fixTitle'\n ).tooltip(\n 'show'\n );\n\n if (opacity === 0) {\n $wrapper.tooltip(\n 'hide'\n );\n }\n }\n\n if(options.tilesOptions.element){\n $wrapper.find(\".strengthify-tiles\").text(options.titles[result.score]);\n }\n }\n };\n\n function init() {\n var $elem = $(this),\n elemId = $elem.attr('id');\n var drawSelf = drawStrengthify.bind(this);\n\n var $addAfter = options.$addAfter;\n if (!$addAfter) {\n $addAfter = $elem;\n }\n\n // add elements\n $addAfter.after('
    ');\n\n if (options.drawBars) {\n getWrapperFor(elemId)\n .append('
    ')\n .append('
    ')\n .append('
    ')\n .append('
    ')\n .append('
    ');\n }\n\n if (options.drawMessage) {\n getWrapperFor(elemId).append('
    ');\n }\n\n if (options.drawTitles && options.tilesOptions) {\n getWrapperFor(elemId).append('
    ');\n }\n\n var script = document.createElement(\"script\");\n script.src = options.zxcvbn;\n if (options.nonce !== null) {\n script.setAttribute('nonce', options.nonce);\n }\n\n script.onload = function() {\n \t$elem.parent().on('scroll', drawSelf);\n $elem.bind('keyup input change', drawSelf);\n }\n\n document.head.appendChild(script);\n };\n\n init.call(this);\n\n //return me;\n });\n };\n\n} (jQuery));\n","'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n","'use strict';\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\nvar INVERSE_EPSILON = 1 / EPSILON;\n\nmodule.exports = function (n) {\n return n + INVERSE_EPSILON - INVERSE_EPSILON;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw new $TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://tc39.es/ecma262/#sec-object.fromentries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared-store');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar AsyncIterator = globalThis.AsyncIterator;\nvar PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;\nvar AsyncIteratorPrototype, prototype;\n\nif (PassedAsyncIteratorPrototype) {\n AsyncIteratorPrototype = PassedAsyncIteratorPrototype;\n} else if (isCallable(AsyncIterator)) {\n AsyncIteratorPrototype = AsyncIterator.prototype;\n} else if (shared[USE_FUNCTION_CONSTRUCTOR] || globalThis[USE_FUNCTION_CONSTRUCTOR]) {\n try {\n // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax\n prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));\n if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;\n } catch (error) { /* empty */ }\n}\n\nif (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};\nelse if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);\n\nif (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = AsyncIteratorPrototype;\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n setArrayLength(A, actualDeleteCount);\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = globalThis[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar takeWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('take', RangeError);\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n if (!this.remaining--) {\n this.done = true;\n return iteratorClose(iterator, 'normal', undefined);\n }\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.take\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || takeWithoutClosingOnEarlyError }, {\n take: function take(limit) {\n anObject(this);\n var remaining;\n try {\n remaining = toPositiveInteger(notANaN(+limit));\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (takeWithoutClosingOnEarlyError) return call(takeWithoutClosingOnEarlyError, this, remaining);\n\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: globalThis.globalThis !== globalThis }, {\n globalThis: globalThis\n});\n","'use strict';\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-menu-entry[data-v-7faa0c46]{--app-menu-entry-font-size: 12px;width:var(--header-height);height:var(--header-height);position:relative}.app-menu-entry__link[data-v-7faa0c46]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-background-plain-text);width:calc(100% - 4px);height:calc(100% - 4px);margin:2px}.app-menu-entry__label[data-v-7faa0c46]{opacity:0;position:absolute;font-size:var(--app-menu-entry-font-size);color:var(--color-background-plain-text);text-align:center;bottom:0;inset-inline-start:50%;top:50%;display:block;transform:translateX(-50%);max-width:100%;text-overflow:ellipsis;overflow:hidden;letter-spacing:-0.5px}body[dir=rtl] .app-menu-entry__label[data-v-7faa0c46]{transform:translateX(50%) !important}.app-menu-entry__icon[data-v-7faa0c46]{font-size:var(--app-menu-entry-font-size)}.app-menu-entry--active .app-menu-entry__label[data-v-7faa0c46]{font-weight:bolder}.app-menu-entry--active[data-v-7faa0c46]::before{content:\" \";position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);transform:translateX(-50%);width:10px;height:5px;border-radius:3px;background-color:var(--color-background-plain-text);inset-inline-start:50%;bottom:8px;display:block;transition:all var(--animation-quick) ease-in-out;opacity:1}body[dir=rtl] .app-menu-entry--active[data-v-7faa0c46]::before{transform:translateX(50%) !important}.app-menu-entry__icon[data-v-7faa0c46],.app-menu-entry__label[data-v-7faa0c46]{transition:all var(--animation-quick) ease-in-out}.app-menu-entry:hover .app-menu-entry__label[data-v-7faa0c46],.app-menu-entry:focus-within .app-menu-entry__label[data-v-7faa0c46]{font-weight:bold}.app-menu-entry--truncated:hover .app-menu-entry__label[data-v-7faa0c46],.app-menu-entry--truncated:focus-within .app-menu-entry__label[data-v-7faa0c46]{max-width:calc(var(--header-height) + var(--app-menu-entry-growth))}.app-menu-entry--truncated:hover+.app-menu-entry .app-menu-entry__label[data-v-7faa0c46],.app-menu-entry--truncated:focus-within+.app-menu-entry .app-menu-entry__label[data-v-7faa0c46]{font-weight:normal;max-width:calc(var(--header-height) - var(--app-menu-entry-growth))}.app-menu-entry:has(+.app-menu-entry--truncated:hover) .app-menu-entry__label[data-v-7faa0c46],.app-menu-entry:has(+.app-menu-entry--truncated:focus-within) .app-menu-entry__label[data-v-7faa0c46]{font-weight:normal;max-width:calc(var(--header-height) - var(--app-menu-entry-growth))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AppMenuEntry.vue\"],\"names\":[],\"mappings\":\"AACA,iCACC,gCAAA,CACA,0BAAA,CACA,2BAAA,CACA,iBAAA,CAEA,uCACC,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,wCAAA,CAEA,sBAAA,CACA,uBAAA,CACA,UAAA,CAGD,wCACC,SAAA,CACA,iBAAA,CACA,yCAAA,CAEA,wCAAA,CACA,iBAAA,CACA,QAAA,CACA,sBAAA,CACA,OAAA,CACA,aAAA,CACA,0BAAA,CACA,cAAA,CACA,sBAAA,CACA,eAAA,CACA,qBAAA,CAED,sDACC,oCAAA,CAGD,uCACC,yCAAA,CAKA,gEACC,kBAAA,CAID,iDACC,WAAA,CACA,iBAAA,CACA,mBAAA,CACA,gDAAA,CACA,0BAAA,CACA,UAAA,CACA,UAAA,CACA,iBAAA,CACA,mDAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,iDAAA,CACA,SAAA,CAED,+DACC,oCAAA,CAIF,+EAEC,iDAAA,CAID,mIAEC,gBAAA,CAOA,yJACC,mEAAA,CAKA,yLACC,kBAAA,CACA,mEAAA,CAQF,qMACC,kBAAA,CACA,mEAAA\",\"sourcesContent\":[\"\\n.app-menu-entry {\\n\\t--app-menu-entry-font-size: 12px;\\n\\twidth: var(--header-height);\\n\\theight: var(--header-height);\\n\\tposition: relative;\\n\\n\\t&__link {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\t// Set color as this is shown directly on the background\\n\\t\\tcolor: var(--color-background-plain-text);\\n\\t\\t// Make space for focus-visible outline\\n\\t\\twidth: calc(100% - 4px);\\n\\t\\theight: calc(100% - 4px);\\n\\t\\tmargin: 2px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\topacity: 0;\\n\\t\\tposition: absolute;\\n\\t\\tfont-size: var(--app-menu-entry-font-size);\\n\\t\\t// this is shown directly on the background\\n\\t\\tcolor: var(--color-background-plain-text);\\n\\t\\ttext-align: center;\\n\\t\\tbottom: 0;\\n\\t\\tinset-inline-start: 50%;\\n\\t\\ttop: 50%;\\n\\t\\tdisplay: block;\\n\\t\\ttransform: translateX(-50%);\\n\\t\\tmax-width: 100%;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tletter-spacing: -0.5px;\\n\\t}\\n\\tbody[dir=rtl] &__label {\\n\\t\\ttransform: translateX(50%) !important;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tfont-size: var(--app-menu-entry-font-size);\\n\\t}\\n\\n\\t&--active {\\n\\t\\t// When hover or focus, show the label and make it bolder than the other entries\\n\\t\\t.app-menu-entry__label {\\n\\t\\t\\tfont-weight: bolder;\\n\\t\\t}\\n\\n\\t\\t// When active show a line below the entry as an \\\"active\\\" indicator\\n\\t\\t&::before {\\n\\t\\t\\tcontent: \\\" \\\";\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tpointer-events: none;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t\\twidth: 10px;\\n\\t\\t\\theight: 5px;\\n\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\tbackground-color: var(--color-background-plain-text);\\n\\t\\t\\tinset-inline-start: 50%;\\n\\t\\t\\tbottom: 8px;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\ttransition: all var(--animation-quick) ease-in-out;\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t\\tbody[dir=rtl] &::before {\\n\\t\\t\\ttransform: translateX(50%) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon,\\n\\t&__label {\\n\\t\\ttransition: all var(--animation-quick) ease-in-out;\\n\\t}\\n\\n\\t// Make the hovered entry bold to see that it is hovered\\n\\t&:hover .app-menu-entry__label,\\n\\t&:focus-within .app-menu-entry__label {\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\t// Adjust the width when an entry is focussed\\n\\t// The focussed / hovered entry should grow, while both neighbors need to shrink\\n\\t&--truncated:hover,\\n\\t&--truncated:focus-within {\\n\\t\\t.app-menu-entry__label {\\n\\t\\t\\tmax-width: calc(var(--header-height) + var(--app-menu-entry-growth));\\n\\t\\t}\\n\\n\\t\\t// The next entry needs to shrink half the growth\\n\\t\\t+ .app-menu-entry {\\n\\t\\t\\t.app-menu-entry__label {\\n\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\tmax-width: calc(var(--header-height) - var(--app-menu-entry-growth));\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// The previous entry needs to shrink half the growth\\n\\t&:has(+ .app-menu-entry--truncated:hover),\\n\\t&:has(+ .app-menu-entry--truncated:focus-within) {\\n\\t\\t.app-menu-entry__label {\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tmax-width: calc(var(--header-height) - var(--app-menu-entry-growth));\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || getBuiltInNodeModule('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n // `DOMException.prototype.code` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n // `DOMException.prototype.message` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n // `DOMException.prototype.name` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar StringDecoder = require('string_decoder').StringDecoder;\nvar inherits = require('inherits');\nvar toBuffer = require('to-buffer');\n\nfunction CipherBase(hashMode) {\n\tTransform.call(this);\n\tthis.hashMode = typeof hashMode === 'string';\n\tif (this.hashMode) {\n\t\tthis[hashMode] = this._finalOrDigest;\n\t} else {\n\t\tthis['final'] = this._finalOrDigest;\n\t}\n\tif (this._final) {\n\t\tthis.__final = this._final;\n\t\tthis._final = null;\n\t}\n\tthis._decoder = null;\n\tthis._encoding = null;\n}\ninherits(CipherBase, Transform);\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n\tvar bufferData = toBuffer(data, inputEnc); // asserts correct input type\n\tvar outData = this._update(bufferData);\n\tif (this.hashMode) {\n\t\treturn this;\n\t}\n\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc);\n\t}\n\n\treturn outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\nCipherBase.prototype.getAuthTag = function () {\n\tthrow new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n\tthrow new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n\tthrow new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n\tvar err;\n\ttry {\n\t\tif (this.hashMode) {\n\t\t\tthis._update(data);\n\t\t} else {\n\t\t\tthis.push(this._update(data));\n\t\t}\n\t} catch (e) {\n\t\terr = e;\n\t} finally {\n\t\tnext(err);\n\t}\n};\nCipherBase.prototype._flush = function (done) {\n\tvar err;\n\ttry {\n\t\tthis.push(this.__final());\n\t} catch (e) {\n\t\terr = e;\n\t}\n\n\tdone(err);\n};\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n\tvar outData = this.__final() || Buffer.alloc(0);\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc, true);\n\t}\n\treturn outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n\tif (!this._decoder) {\n\t\tthis._decoder = new StringDecoder(enc);\n\t\tthis._encoding = enc;\n\t}\n\n\tif (this._encoding !== enc) {\n\t\tthrow new Error('can’t switch encodings');\n\t}\n\n\tvar out = this._decoder.write(value);\n\tif (fin) {\n\t\tout += this._decoder.end();\n\t}\n\n\treturn out;\n};\n\nmodule.exports = CipherBase;\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\nvar sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort'));\n\n// `Array.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-array.prototype.tosorted\n$({ target: 'Array', proto: true }, {\n toSorted: function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = toIndexedObject(this);\n var A = arrayFromConstructorAndList($Array, O);\n return sort(A, compareFn);\n }\n});\n\naddToUnscopables('toSorted');\n","\"use strict\";\n\n(function e(t, n, r) {\n function s(o, u) {\n if (!n[o]) {\n if (!t[o]) {\n var a = typeof require == \"function\" && require;if (!u && a) return a(o, !0);if (i) return i(o, !0);throw new Error(\"Cannot find module '\" + o + \"'\");\n }var f = n[o] = { exports: {} };t[o][0].call(f.exports, function (e) {\n var n = t[o][1][e];return s(n ? n : e);\n }, f, f.exports, e, t, n, r);\n }return n[o].exports;\n }var i = typeof require == \"function\" && require;for (var o = 0; o < r.length; o++) {\n s(r[o]);\n }return s;\n})({ 1: [function (require, module, exports) {\n var Snap = require('./snap');\n\n if (typeof window !== \"undefined\" && !window.Snap) {\n window.Snap = Snap;\n }\n }, { \"./snap\": 2 }], 2: [function (require, module, exports) {\n /*\n * Snap.js\n *\n * Copyright 2013, Jacob Kelley - http://jakiestfu.com/\n * Released under the MIT Licence\n * http://opensource.org/licenses/MIT\n *\n * Copyright 2016, Joey Andres\n */\n\n var Snap = function Snap(userOpts) {\n var settings = {\n element: null,\n dragger: null,\n disable: 'none',\n addBodyClasses: true,\n hyperextensible: true,\n resistance: 0.5,\n flickThreshold: 50,\n transitionSpeed: 0.3,\n easing: 'ease',\n maxPosition: 266,\n minPosition: -266,\n tapToClose: true,\n touchToDrag: true,\n slideIntent: 40, // degrees\n minDragDistance: 5,\n stopPropagation: true\n },\n cache = {\n simpleStates: {\n opening: null,\n towards: null,\n hyperExtending: null,\n halfway: null,\n flick: null,\n translation: {\n absolute: 0,\n relative: 0,\n sinceDirectionChange: 0,\n percentage: 0\n }\n }\n },\n eventList = {},\n utils = {\n hasTouch: 'ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch,\n eventType: function eventType(action) {\n var eventTypes = {\n down: 'pointerdown',\n move: 'pointermove',\n up: 'pointerup',\n out: 'pointerout'\n };\n return eventTypes[action];\n },\n page: function page(t, e) {\n return utils.hasTouch ? e.touches ? e.touches.length > 0 ? e.touches[0][\"page\" + t] : e.changedTouches[0][\"page\" + t] : e[\"page\" + t] : e[\"page\" + t];\n },\n klass: {\n has: function has(el, name) {\n return el.className.indexOf(name) !== -1;\n },\n add: function add(el, name) {\n if (!utils.klass.has(el, name) && settings.addBodyClasses) {\n el.className += \" \" + name;\n }\n },\n remove: function remove(el, name) {\n if (settings.addBodyClasses) {\n el.className = el.className.replace(name, \"\").replace(/^\\s+|\\s+$/g, '');\n }\n }\n },\n dispatchEvent: function dispatchEvent(type) {\n if (typeof eventList[type] === 'function') {\n return eventList[type].call();\n }\n },\n vendor: function vendor() {\n var tmp = document.createElement(\"div\"),\n prefixes = 'webkit Moz O ms'.split(' '),\n i;\n for (i in prefixes) {\n if (typeof tmp.style[prefixes[i] + 'Transition'] !== 'undefined') {\n return prefixes[i];\n }\n }\n },\n transitionCallback: function transitionCallback() {\n return cache.vendor === 'Moz' || cache.vendor === 'ms' ? 'transitionend' : cache.vendor + 'TransitionEnd';\n },\n deepExtend: function deepExtend(destination, source) {\n var property;\n for (property in source) {\n if (source[property] && source[property].constructor && source[property].constructor === Object) {\n destination[property] = destination[property] || {};\n utils.deepExtend(destination[property], source[property]);\n } else {\n destination[property] = source[property];\n }\n }\n return destination;\n },\n angleOfDrag: function angleOfDrag(x, y) {\n var degrees, theta;\n // Calc Theta\n theta = Math.atan2(-(cache.startDragY - y), cache.startDragX - x);\n if (theta < 0) {\n theta += 2 * Math.PI;\n }\n // Calc Degrees\n degrees = Math.floor(theta * (180 / Math.PI) - 180);\n if (degrees < 0 && degrees > -180) {\n degrees = 360 - Math.abs(degrees);\n }\n return Math.abs(degrees);\n },\n events: {\n addEvent: function addEvent(element, eventName, func) {\n if (element.addEventListener) {\n return element.addEventListener(eventName, func, false);\n } else if (element.attachEvent) {\n return element.attachEvent(\"on\" + eventName, func);\n }\n },\n removeEvent: function addEvent(element, eventName, func) {\n if (element.addEventListener) {\n return element.removeEventListener(eventName, func, false);\n } else if (element.attachEvent) {\n return element.detachEvent(\"on\" + eventName, func);\n }\n },\n prevent: function prevent(e) {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n }\n },\n parentUntil: function parentUntil(el, attr) {\n var isStr = typeof attr === 'string';\n while (el.parentNode) {\n if (isStr && el.getAttribute && el.getAttribute(attr)) {\n return el;\n } else if (!isStr && el === attr) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n }\n },\n action = {\n translate: {\n get: {\n matrix: function matrix(index) {\n var matrix = window.getComputedStyle(settings.element)[cache.vendor + 'Transform'].match(/\\((.*)\\)/),\n ieOffset = 8;\n if (matrix) {\n matrix = matrix[1].split(',');\n if (matrix.length === 16) {\n index += ieOffset;\n }\n return parseInt(matrix[index], 10);\n }\n return 0;\n }\n },\n easeCallback: function easeCallback() {\n settings.element.style[cache.vendor + 'Transition'] = '';\n cache.translation = action.translate.get.matrix(4);\n cache.easing = false;\n clearInterval(cache.animatingInterval);\n\n if (cache.easingTo === 0) {\n utils.klass.remove(document.body, 'snapjs-right');\n utils.klass.remove(document.body, 'snapjs-left');\n }\n\n utils.dispatchEvent('animated');\n utils.events.removeEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);\n },\n easeTo: function easeTo(n) {\n cache.easing = true;\n\n cache.easingTo = n;\n settings.element.style[cache.vendor + 'Transition'] = 'all ' + settings.transitionSpeed + 's ' + settings.easing;\n cache.animatingInterval = setInterval(function () {\n utils.dispatchEvent('animating');\n }, 1);\n\n utils.events.addEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);\n action.translate.x(n);\n\n if (n === 0) {\n settings.element.style[cache.vendor + 'Transform'] = '';\n }\n },\n x: function x(n) {\n if (settings.disable === 'left' && n > 0 || settings.disable === 'right' && n < 0) {\n return;\n }\n\n if (!settings.hyperextensible) {\n if (n === settings.maxPosition || n > settings.maxPosition) {\n n = settings.maxPosition;\n } else if (n === settings.minPosition || n < settings.minPosition) {\n n = settings.minPosition;\n }\n }\n\n n = parseInt(n, 10);\n if (isNaN(n)) {\n n = 0;\n }\n\n var theTranslate = \"translate3d(\" + n + \"px, 0,0)\";\n settings.element.style[cache.vendor + 'Transform'] = theTranslate;\n }\n },\n drag: {\n listen: function listen() {\n cache.translation = 0;\n cache.easing = false;\n\n ['touchstart', 'pointerdown', 'MSPointerDown', 'mousedown'].forEach(function (e) {\n return utils.events.addEvent(settings.element, e, action.drag.handleEvent);\n });\n ['touchmove', 'pointermove', 'MSPointerMove', 'mousemove'].forEach(function (e) {\n return utils.events.addEvent(settings.element, e, action.drag.handleEvent);\n });\n ['touchend', 'pointerup', 'MSPointerUp', 'mouseup', 'touchcancel', 'pointercancel', 'MSPointerCancel', 'mousecancel'].forEach(function (e) {\n return utils.events.addEvent(settings.element, e, action.drag.handleEvent);\n });\n },\n stopListening: function stopListening() {\n ['touchstart', 'pointerdown', 'MSPointerDown', 'mousedown'].forEach(function (e) {\n return utils.events.removeEvent(settings.element, e, action.drag.handleEvent);\n });\n ['touchmove', 'pointermove', 'MSPointerMove', 'mousemove'].forEach(function (e) {\n return utils.events.removeEvent(settings.element, e, action.drag.handleEvent);\n });\n ['touchend', 'pointerup', 'MSPointerUp', 'mouseup', 'touchcancel', 'pointercancel', 'MSPointerCancel', 'mousecancel'].forEach(function (e) {\n return utils.events.removeEvent(settings.element, e, action.drag.handleEvent);\n });\n },\n handleEvent: function handleEvent(e) {\n switch (e.type) {\n case 'touchstart':\n case 'pointerdown':\n case 'MSPointerDown':\n case 'mousedown':\n action.drag.startDrag(e);\n break;\n case 'touchmove':\n case 'pointermove':\n case 'MSPointerMove':\n case 'mousemove':\n action.drag.dragging(e);\n break;\n case 'touchend':\n case 'pointerup':\n case 'MSPointerUp':\n case 'mouseup':\n case 'touchcancel':\n case 'pointercancel':\n case 'MSPointerCancel':\n case 'mousecancel':\n action.drag.endDrag(e);\n break;\n }\n },\n startDrag: function startDrag(e) {\n // No drag on ignored elements\n var target = e.target ? e.target : e.srcElement,\n ignoreParent = utils.parentUntil(target, 'data-snap-ignore');\n\n if (ignoreParent) {\n utils.dispatchEvent('ignore');\n return;\n }\n\n if (settings.dragger) {\n var dragParent = utils.parentUntil(target, settings.dragger);\n\n // Only use dragger if we're in a closed state\n if (!dragParent && cache.translation !== settings.minPosition && cache.translation !== settings.maxPosition) {\n return;\n }\n }\n\n utils.dispatchEvent('start');\n settings.element.style[cache.vendor + 'Transition'] = '';\n cache.isDragging = true;\n cache.hasIntent = null;\n cache.intentChecked = false;\n cache.startDragX = utils.page('X', e);\n cache.startDragY = utils.page('Y', e);\n cache.dragWatchers = {\n current: 0,\n last: 0,\n hold: 0,\n state: ''\n };\n cache.simpleStates = {\n opening: null,\n towards: null,\n hyperExtending: null,\n halfway: null,\n flick: null,\n translation: {\n absolute: 0,\n relative: 0,\n sinceDirectionChange: 0,\n percentage: 0\n }\n };\n },\n dragging: function dragging(e) {\n if (cache.isDragging && settings.touchToDrag) {\n if (cache.hasIntent && settings.stopPropagation) e.stopPropagation();\n\n var thePageX = utils.page('X', e),\n thePageY = utils.page('Y', e),\n translated = cache.translation,\n absoluteTranslation = action.translate.get.matrix(4),\n whileDragX = thePageX - cache.startDragX,\n openingLeft = absoluteTranslation > 0,\n translateTo = whileDragX,\n diff;\n\n // Shown no intent already\n if (cache.intentChecked && !cache.hasIntent) {\n return;\n }\n\n if (settings.addBodyClasses) {\n if (absoluteTranslation > 0) {\n utils.klass.add(document.body, 'snapjs-left');\n utils.klass.remove(document.body, 'snapjs-right');\n } else if (absoluteTranslation < 0) {\n utils.klass.add(document.body, 'snapjs-right');\n utils.klass.remove(document.body, 'snapjs-left');\n }\n }\n\n if (cache.hasIntent === false || cache.hasIntent === null) {\n var deg = utils.angleOfDrag(thePageX, thePageY),\n inRightRange = deg >= 0 && deg <= settings.slideIntent || deg <= 360 && deg > 360 - settings.slideIntent,\n inLeftRange = deg >= 180 && deg <= 180 + settings.slideIntent || deg <= 180 && deg >= 180 - settings.slideIntent;\n if (!inLeftRange && !inRightRange) {\n cache.hasIntent = false;\n } else {\n cache.hasIntent = true;\n if (settings.stopPropagation) e.stopPropagation();\n }\n cache.intentChecked = true;\n }\n\n if (settings.minDragDistance >= Math.abs(thePageX - cache.startDragX) || // Has user met minimum drag distance?\n cache.hasIntent === false) {\n return;\n }\n\n utils.events.prevent(e);\n utils.dispatchEvent('drag');\n\n cache.dragWatchers.current = thePageX;\n // Determine which direction we are going\n if (cache.dragWatchers.last > thePageX) {\n if (cache.dragWatchers.state !== 'left') {\n cache.dragWatchers.state = 'left';\n cache.dragWatchers.hold = thePageX;\n }\n cache.dragWatchers.last = thePageX;\n } else if (cache.dragWatchers.last < thePageX) {\n if (cache.dragWatchers.state !== 'right') {\n cache.dragWatchers.state = 'right';\n cache.dragWatchers.hold = thePageX;\n }\n cache.dragWatchers.last = thePageX;\n }\n if (openingLeft) {\n // Pulling too far to the right\n if (settings.maxPosition < absoluteTranslation) {\n diff = (absoluteTranslation - settings.maxPosition) * settings.resistance;\n translateTo = whileDragX - diff;\n }\n cache.simpleStates = {\n opening: 'left',\n towards: cache.dragWatchers.state,\n hyperExtending: settings.maxPosition < absoluteTranslation,\n halfway: absoluteTranslation > settings.maxPosition / 2,\n flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,\n translation: {\n absolute: absoluteTranslation,\n relative: whileDragX,\n sinceDirectionChange: cache.dragWatchers.current - cache.dragWatchers.hold,\n percentage: absoluteTranslation / settings.maxPosition * 100\n }\n };\n } else {\n // Pulling too far to the left\n if (settings.minPosition > absoluteTranslation) {\n diff = (absoluteTranslation - settings.minPosition) * settings.resistance;\n translateTo = whileDragX - diff;\n }\n cache.simpleStates = {\n opening: 'right',\n towards: cache.dragWatchers.state,\n hyperExtending: settings.minPosition > absoluteTranslation,\n halfway: absoluteTranslation < settings.minPosition / 2,\n flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,\n translation: {\n absolute: absoluteTranslation,\n relative: whileDragX,\n sinceDirectionChange: cache.dragWatchers.current - cache.dragWatchers.hold,\n percentage: absoluteTranslation / settings.minPosition * 100\n }\n };\n }\n\n action.translate.x(translateTo + translated);\n }\n },\n endDrag: function endDrag(e) {\n if (cache.isDragging) {\n utils.dispatchEvent('end');\n var translated = action.translate.get.matrix(4);\n\n // Tap Close\n if (cache.dragWatchers.current === 0 && translated !== 0 && settings.tapToClose) {\n utils.dispatchEvent('close');\n utils.events.prevent(e);\n action.translate.easeTo(0);\n cache.isDragging = false;\n cache.startDragX = 0;\n return;\n }\n\n // Revealing Left\n if (cache.simpleStates.opening === 'left') {\n // Halfway, Flicking, or Too Far Out\n if (cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick) {\n if (cache.simpleStates.flick && cache.simpleStates.towards === 'left') {\n // Flicking Closed\n action.translate.easeTo(0);\n } else if (cache.simpleStates.flick && cache.simpleStates.towards === 'right' || // Flicking Open OR\n cache.simpleStates.halfway || cache.simpleStates.hyperExtending // At least halfway open OR hyperextending\n ) {\n action.translate.easeTo(settings.maxPosition); // Open Left\n }\n } else {\n action.translate.easeTo(0); // Close Left\n }\n // Revealing Right\n } else if (cache.simpleStates.opening === 'right') {\n // Halfway, Flicking, or Too Far Out\n if (cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick) {\n if (cache.simpleStates.flick && cache.simpleStates.towards === 'right') {\n // Flicking Closed\n action.translate.easeTo(0);\n } else if (cache.simpleStates.flick && cache.simpleStates.towards === 'left' || // Flicking Open OR\n cache.simpleStates.halfway || cache.simpleStates.hyperExtending // At least halfway open OR hyperextending\n ) {\n action.translate.easeTo(settings.minPosition); // Open Right\n }\n } else {\n action.translate.easeTo(0); // Close Right\n }\n }\n cache.isDragging = false;\n cache.startDragX = utils.page('X', e);\n }\n }\n }\n },\n _init = function _init(opts) {\n utils.deepExtend(settings, opts);\n if (settings.element) {\n settings.element.setAttribute(\"touch-action\", \"pan-y\");\n } else {\n throw \"Snap's element argument does not exist.\";\n }\n },\n init = function init(opts) {\n _init(opts);\n cache.vendor = utils.vendor();\n action.drag.listen();\n };\n /*\n * Public\n */\n this.open = function (side) {\n utils.dispatchEvent('open');\n utils.klass.remove(document.body, 'snapjs-expand-left');\n utils.klass.remove(document.body, 'snapjs-expand-right');\n\n if (side === 'left') {\n cache.simpleStates.opening = 'left';\n cache.simpleStates.towards = 'right';\n utils.klass.add(document.body, 'snapjs-left');\n utils.klass.remove(document.body, 'snapjs-right');\n action.translate.easeTo(settings.maxPosition);\n } else if (side === 'right') {\n cache.simpleStates.opening = 'right';\n cache.simpleStates.towards = 'left';\n utils.klass.remove(document.body, 'snapjs-left');\n utils.klass.add(document.body, 'snapjs-right');\n action.translate.easeTo(settings.minPosition);\n }\n };\n this.close = function () {\n utils.dispatchEvent('close');\n action.translate.easeTo(0);\n };\n this.expand = function (side) {\n var to = window.innerWidth || document.documentElement.clientWidth;\n\n if (side === 'left') {\n utils.dispatchEvent('expandLeft');\n utils.klass.add(document.body, 'snapjs-expand-left');\n utils.klass.remove(document.body, 'snapjs-expand-right');\n } else {\n utils.dispatchEvent('expandRight');\n utils.klass.add(document.body, 'snapjs-expand-right');\n utils.klass.remove(document.body, 'snapjs-expand-left');\n to *= -1;\n }\n action.translate.easeTo(to);\n };\n\n this.on = function (evt, fn) {\n eventList[evt] = fn;\n return this;\n };\n this.off = function (evt) {\n if (eventList[evt]) {\n eventList[evt] = false;\n }\n };\n\n this.enable = function () {\n utils.dispatchEvent('enable');\n action.drag.listen();\n };\n this.disable = function () {\n utils.dispatchEvent('disable');\n action.drag.stopListening();\n };\n\n this.settings = function (opts) {\n _init(opts);\n };\n\n this.state = function () {\n var state,\n fromLeft = action.translate.get.matrix(4);\n if (fromLeft === settings.maxPosition) {\n state = 'left';\n } else if (fromLeft === settings.minPosition) {\n state = 'right';\n } else {\n state = 'closed';\n }\n return {\n state: state,\n info: cache.simpleStates\n };\n };\n init(userOpts);\n };\n module.exports = Snap;\n }, {}] }, {}, [1]);","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function dotAll() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw new $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar round = Math.round;\n\nmodule.exports = function (it) {\n var value = round(it);\n return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt !== $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Date = Date;\nvar thisTimeValue = uncurryThis($Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return thisTimeValue(new $Date());\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar SyntaxError = globalThis.SyntaxError;\nvar TypeError = globalThis.TypeError;\nvar at = uncurryThis(''.charAt);\n\nvar skipAsciiWhitespace = function (string, index) {\n var length = string.length;\n for (;index < length; index++) {\n var chr = at(string, index);\n if (chr !== ' ' && chr !== '\\t' && chr !== '\\n' && chr !== '\\f' && chr !== '\\r') break;\n } return index;\n};\n\nvar decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {\n var chunkLength = chunk.length;\n\n if (chunkLength < 4) {\n chunk += chunkLength === 2 ? 'AA' : 'A';\n }\n\n var triplet = (alphabet[at(chunk, 0)] << 18)\n + (alphabet[at(chunk, 1)] << 12)\n + (alphabet[at(chunk, 2)] << 6)\n + alphabet[at(chunk, 3)];\n\n var chunkBytes = [\n (triplet >> 16) & 255,\n (triplet >> 8) & 255,\n triplet & 255\n ];\n\n if (chunkLength === 2) {\n if (throwOnExtraBits && chunkBytes[1] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0]];\n }\n\n if (chunkLength === 3) {\n if (throwOnExtraBits && chunkBytes[2] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0], chunkBytes[1]];\n }\n\n return chunkBytes;\n};\n\nvar writeBytes = function (bytes, elements, written) {\n var elementsLength = elements.length;\n for (var index = 0; index < elementsLength; index++) {\n bytes[written + index] = elements[index];\n }\n return written + elementsLength;\n};\n\n/* eslint-disable max-statements, max-depth -- TODO */\nmodule.exports = function (string, options, into, maxLength) {\n aString(string);\n anObjectOrUndefined(options);\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var lastChunkHandling = options ? options.lastChunkHandling : undefined;\n\n if (lastChunkHandling === undefined) lastChunkHandling = 'loose';\n\n if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {\n throw new TypeError('Incorrect `lastChunkHandling` option');\n }\n\n if (into) notDetached(into.buffer);\n\n var stringLength = string.length;\n var bytes = into || [];\n var written = 0;\n var read = 0;\n var chunk = '';\n var index = 0;\n\n if (maxLength) while (true) {\n index = skipAsciiWhitespace(string, index);\n if (index === stringLength) {\n if (chunk.length > 0) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n if (lastChunkHandling === 'loose') {\n if (chunk.length === 1) {\n throw new SyntaxError('Malformed padding: exactly one additional character');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n } else {\n throw new SyntaxError('Missing padding');\n }\n }\n read = stringLength;\n break;\n }\n var chr = at(string, index);\n ++index;\n if (chr === '=') {\n if (chunk.length < 2) {\n throw new SyntaxError('Padding is too early');\n }\n index = skipAsciiWhitespace(string, index);\n if (chunk.length === 2) {\n if (index === stringLength) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n throw new SyntaxError('Malformed padding: only one =');\n }\n if (at(string, index) === '=') {\n ++index;\n index = skipAsciiWhitespace(string, index);\n }\n }\n if (index < stringLength) {\n throw new SyntaxError('Unexpected character after padding');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);\n read = stringLength;\n break;\n }\n if (!hasOwn(alphabet, chr)) {\n throw new SyntaxError('Unexpected character');\n }\n var remainingBytes = maxLength - written;\n if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {\n // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`\n break;\n }\n\n chunk += chr;\n if (chunk.length === 4) {\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n chunk = '';\n read = index;\n if (written === maxLength) {\n break;\n }\n }\n }\n\n return { bytes: bytes, read: read, written: written };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var resIndex = 0;\n var target = IS_MAP ? arraySpeciesCreate($this, length) : IS_FILTER || IS_FILTER_REJECT ? arraySpeciesCreate($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) createProperty(target, index, result); // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: createProperty(target, resIndex++, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: createProperty(target, resIndex++, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr === '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O, 'number');\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlagsDetection = require('../internals/regexp-flags-detection');\nvar regExpFlagsGetterImplementation = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = regExpFlagsDetection.correct ? function (it) {\n return it.flags;\n} : function (it) {\n return (!regExpFlagsDetection.correct && isPrototypeOf(RegExpPrototype, it) && !hasOwn(it, 'flags'))\n ? call(regExpFlagsGetterImplementation, it)\n : it.flags;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\n// IE8- non-standard case\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection\n return new Date(16e11).getYear() !== 120;\n});\n\nvar getFullYear = uncurryThis(Date.prototype.getFullYear);\n\n// `Date.prototype.getYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.getyear\n$({ target: 'Date', proto: true, forced: FORCED }, {\n getYear: function getYear() {\n return getFullYear(this) - 1900;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });\nvar mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n map: function map(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n }\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar createProperty = require('../internals/create-property');\nvar iterate = require('../internals/iterate');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.toArray` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.toarray\n$({ target: 'Iterator', proto: true, real: true }, {\n toArray: function toArray() {\n var result = [];\n var index = 0;\n iterate(getIteratorDirect(anObject(this)), function (element) {\n createProperty(result, index++, element);\n }, { IS_RECORD: true });\n return result;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar log10 = require('../internals/math-log10');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar round = Math.round;\nvar nativeToExponential = uncurryThis(1.1.toExponential);\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\n\n// Edge 17-\nvar ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11'\n // IE11- && Edge 14-\n && nativeToExponential(1.255, 2) === '1.25e+0'\n // FF86-, V8 ~ Chrome 49-50\n && nativeToExponential(12345, 3) === '1.235e+4'\n // FF86-, V8 ~ Chrome 49-50\n && nativeToExponential(25, 0) === '3e+1';\n\n// IE8-\nvar throwsOnInfinityFraction = function () {\n return fails(function () {\n nativeToExponential(1, Infinity);\n }) && fails(function () {\n nativeToExponential(1, -Infinity);\n });\n};\n\n// Safari <11 && FF <50\nvar properNonFiniteThisCheck = function () {\n return !fails(function () {\n nativeToExponential(Infinity, Infinity);\n nativeToExponential(NaN, Infinity);\n });\n};\n\nvar FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck();\n\n// `Number.prototype.toExponential` method\n// https://tc39.es/ecma262/#sec-number.prototype.toexponential\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toExponential: function toExponential(fractionDigits) {\n var x = thisNumberValue(this);\n if (fractionDigits === undefined) return nativeToExponential(x);\n var f = toIntegerOrInfinity(fractionDigits);\n if (!$isFinite(x)) return String(x);\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits');\n if (ROUNDS_PROPERLY) return nativeToExponential(x, f);\n var s = '';\n var m, e, c, d;\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x === 0) {\n e = 0;\n m = repeat('0', f + 1);\n } else {\n // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08\n // TODO: improve accuracy with big fraction digits\n var l = log10(x);\n e = floor(l);\n var w = pow(10, e - f);\n var n = round(x / w);\n if (2 * x >= (2 * n + 1) * w) {\n n += 1;\n }\n if (n >= pow(10, f + 1)) {\n n /= 10;\n e += 1;\n }\n m = $String(n);\n }\n if (f !== 0) {\n m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);\n }\n if (e === 0) {\n c = '+';\n d = '0';\n } else {\n c = e > 0 ? '+' : '-';\n d = $String(abs(e));\n }\n m += 'e' + c + d;\n return s + m;\n }\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\n\nmodule.exports = function SHA(algorithm) {\n\tvar alg = algorithm.toLowerCase();\n\n\tvar Algorithm = module.exports[alg];\n\tif (!Algorithm) {\n\t\tthrow new Error(alg + ' is not supported (we accept pull requests)');\n\t}\n\n\treturn new Algorithm();\n};\n\nmodule.exports.sha = require('./sha');\nmodule.exports.sha1 = require('./sha1');\nmodule.exports.sha224 = require('./sha224');\nmodule.exports.sha256 = require('./sha256');\nmodule.exports.sha384 = require('./sha384');\nmodule.exports.sha512 = require('./sha512');\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'string') return argument;\n throw new $TypeError('Argument is not a string');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isObject = require('../internals/is-object');\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\nvar toObject = require('../internals/to-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nvar getPrototypeOf = Object.getPrototypeOf;\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nvar setPrototypeOf = Object.setPrototypeOf;\nvar ObjectPrototype = Object.prototype;\nvar PROTO = '__proto__';\n\n// `Object.prototype.__proto__` accessor\n// https://tc39.es/ecma262/#sec-object.prototype.__proto__\nif (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {\n defineBuiltInAccessor(ObjectPrototype, PROTO, {\n configurable: true,\n get: function __proto__() {\n return getPrototypeOf(toObject(this));\n },\n set: function __proto__(proto) {\n var O = requireObjectCoercible(this);\n if (isPossiblePrototype(proto) && isObject(O)) {\n setPrototypeOf(O, proto);\n }\n }\n });\n} catch (error) { /* empty */ }\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha1() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha1, Hash);\n\nSha1.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl1(num) {\n\treturn (num << 1) | (num >>> 31);\n}\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha1.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = rotl1(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha1.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha1;\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n\n var defaultPropertyWhiteList = Object.create(null);\n // eslint-disable-next-line no-proto\n defaultPropertyWhiteList['__proto__'] = false;\n\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n _logger2['default'].log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMvQyxXQUFXOzs7O0FBRTlCLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFdEMsU0FBUyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUU7QUFDdkQsTUFBSSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELHdCQUFzQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUM5Qyx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQzs7QUFFbkQsTUFBSSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUVuRCwwQkFBd0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRTlDLFNBQU87QUFDTCxjQUFVLEVBQUU7QUFDVixlQUFTLEVBQUUsNkNBQ1Qsd0JBQXdCLEVBQ3hCLGNBQWMsQ0FBQyxzQkFBc0IsQ0FDdEM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQyw2QkFBNkI7S0FDM0Q7QUFDRCxXQUFPLEVBQUU7QUFDUCxlQUFTLEVBQUUsNkNBQ1Qsc0JBQXNCLEVBQ3RCLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDbkM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQywwQkFBMEI7S0FDeEQ7R0FDRixDQUFDO0NBQ0g7O0FBRU0sU0FBUyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRTtBQUN4RSxNQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtBQUNoQyxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDakUsTUFBTTtBQUNMLFdBQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztHQUNwRTtDQUNGOztBQUVELFNBQVMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLFlBQVksRUFBRTtBQUMvRCxNQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDbkUsV0FBTyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDO0dBQ25FO0FBQ0QsTUFBSSx5QkFBeUIsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO0FBQ3hELFdBQU8seUJBQXlCLENBQUMsWUFBWSxDQUFDO0dBQy9DO0FBQ0QsZ0NBQThCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDN0MsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFlBQVksRUFBRTtBQUNwRCxNQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtBQUMzQyxvQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDdEMsd0JBQU8sR0FBRyxDQUNSLE9BQU8sRUFDUCxpRUFBK0QsWUFBWSxvSUFDSCxvSEFDMkMsQ0FDcEgsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxxQkFBcUIsR0FBRztBQUN0QyxRQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsWUFBWSxFQUFJO0FBQ3BELFdBQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7R0FDdkMsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoicHJvdG8tYWNjZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTmV3TG9va3VwT2JqZWN0IH0gZnJvbSAnLi9jcmVhdGUtbmV3LWxvb2t1cC1vYmplY3QnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBsb2dnZWRQcm9wZXJ0aWVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChydW50aW1lT3B0aW9ucykge1xuICBsZXQgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ2NvbnN0cnVjdG9yJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19kZWZpbmVHZXR0ZXJfXyddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lU2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2xvb2t1cEdldHRlcl9fJ10gPSBmYWxzZTtcblxuICBsZXQgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvXG4gIGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdFsnX19wcm90b19fJ10gPSBmYWxzZTtcblxuICByZXR1cm4ge1xuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHdoaXRlbGlzdDogY3JlYXRlTmV3TG9va3VwT2JqZWN0KFxuICAgICAgICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b1Byb3BlcnRpZXNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9Qcm9wZXJ0aWVzQnlEZWZhdWx0XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCxcbiAgICAgICAgcnVudGltZU9wdGlvbnMuYWxsb3dlZFByb3RvTWV0aG9kc1xuICAgICAgKSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogcnVudGltZU9wdGlvbnMuYWxsb3dQcm90b01ldGhvZHNCeURlZmF1bHRcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXN1bHRJc0FsbG93ZWQocmVzdWx0LCBwcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkge1xuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBjaGVja1doaXRlTGlzdChwcm90b0FjY2Vzc0NvbnRyb2wubWV0aG9kcywgcHJvcGVydHlOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLnByb3BlcnRpZXMsIHByb3BlcnR5TmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZSwgcHJvcGVydHlOYW1lKSB7XG4gIGlmIChwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLndoaXRlbGlzdFtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSA9PT0gdHJ1ZTtcbiAgfVxuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLmRlZmF1bHRWYWx1ZTtcbiAgfVxuICBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKSB7XG4gIGlmIChsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gIT09IHRydWUpIHtcbiAgICBsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gPSB0cnVlO1xuICAgIGxvZ2dlci5sb2coXG4gICAgICAnZXJyb3InLFxuICAgICAgYEhhbmRsZWJhcnM6IEFjY2VzcyBoYXMgYmVlbiBkZW5pZWQgdG8gcmVzb2x2ZSB0aGUgcHJvcGVydHkgXCIke3Byb3BlcnR5TmFtZX1cIiBiZWNhdXNlIGl0IGlzIG5vdCBhbiBcIm93biBwcm9wZXJ0eVwiIG9mIGl0cyBwYXJlbnQuXFxuYCArXG4gICAgICAgIGBZb3UgY2FuIGFkZCBhIHJ1bnRpbWUgb3B0aW9uIHRvIGRpc2FibGUgdGhlIGNoZWNrIG9yIHRoaXMgd2FybmluZzpcXG5gICtcbiAgICAgICAgYFNlZSBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vYXBpLXJlZmVyZW5jZS9ydW50aW1lLW9wdGlvbnMuaHRtbCNvcHRpb25zLXRvLWNvbnRyb2wtcHJvdG90eXBlLWFjY2VzcyBmb3IgZGV0YWlsc2BcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldExvZ2dlZFByb3BlcnRpZXMoKSB7XG4gIE9iamVjdC5rZXlzKGxvZ2dlZFByb3BlcnRpZXMpLmZvckVhY2gocHJvcGVydHlOYW1lID0+IHtcbiAgICBkZWxldGUgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\n\nvar $isFinite = isFinite;\nvar MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n\tif (typeof iterations !== 'number') {\n\t\tthrow new TypeError('Iterations not a number');\n\t}\n\n\tif (iterations < 0 || !$isFinite(iterations)) {\n\t\tthrow new TypeError('Bad iterations');\n\t}\n\n\tif (typeof keylen !== 'number') {\n\t\tthrow new TypeError('Key length not a number');\n\t}\n\n\tif (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n\t\tthrow new TypeError('Bad key length');\n\t}\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n var n = +x;\n return sign(n) * pow(abs(n), 1 / 3);\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: null,\n last: null,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: null,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = null;\n entry = entry.next;\n }\n state.first = state.last = null;\n state.index = create(null);\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: null\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 });\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-menu-icon[data-v-81f2fa84]{box-sizing:border-box;position:relative;height:20px;width:20px}.app-menu-icon__icon[data-v-81f2fa84]{transition:margin .1s ease-in-out;height:20px;width:20px;filter:var(--background-image-invert-if-bright);mask:var(--header-menu-icon-mask)}.app-menu-icon__unread[data-v-81f2fa84]{color:var(--color-text-error);position:absolute;inset-block-end:15px;inset-inline-end:-5px;transition:all .1s ease-in-out}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AppMenuIcon.vue\"],\"names\":[],\"mappings\":\"AAIA,gCACC,qBAAA,CACA,iBAAA,CAEA,WAPW,CAQX,UARW,CAUX,sCACC,iCAAA,CACA,WAZU,CAaV,UAbU,CAcV,+CAAA,CACA,iCAAA,CAGD,wCACC,6BAAA,CACA,iBAAA,CAEA,oBAAA,CACA,qBAAA,CACA,8BAAA\",\"sourcesContent\":[\"\\n$icon-size: 20px;\\n$unread-indicator-size: 10px;\\n\\n.app-menu-icon {\\n\\tbox-sizing: border-box;\\n\\tposition: relative;\\n\\n\\theight: $icon-size;\\n\\twidth: $icon-size;\\n\\n\\t&__icon {\\n\\t\\ttransition: margin 0.1s ease-in-out;\\n\\t\\theight: $icon-size;\\n\\t\\twidth: $icon-size;\\n\\t\\tfilter: var(--background-image-invert-if-bright);\\n\\t\\tmask: var(--header-menu-icon-mask);\\n\\t}\\n\\n\\t&__unread {\\n\\t\\tcolor: var(--color-text-error);\\n\\t\\tposition: absolute;\\n\\t\\t// Align the dot to the top right corner of the icon\\n\\t\\tinset-block-end: calc($icon-size + ($unread-indicator-size / -2));\\n\\t\\tinset-inline-end: calc($unread-indicator-size / -2);\\n\\t\\ttransition: all 0.1s ease-in-out;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\n\nvar FLAGS_GETTER_IS_CORRECT = !fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\nmodule.exports = { correct: FLAGS_GETTER_IS_CORRECT };\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar IS_IE11 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = freeze;\n else if (isSealed(key)) arrayIntegrityLevel = seal;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel) arrayIntegrityLevel(key);\n return this;\n }\n });\n}\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar getInternalState = require('../internals/internal-state').get;\n\nmodule.exports = function isRawJSON(O) {\n if (!isObject(O)) return false;\n var state = getInternalState(O);\n return !!state && state.type === 'RawJSON';\n};\n","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar inherits = require('inherits');\nvar HashBase = require('hash-base');\n\nvar ARRAY16 = new Array(16);\n\nvar zl = [\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar zr = [\n\t5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar sl = [\n\t11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sr = [\n\t8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction rotl(x, n) {\n\treturn (x << n) | (x >>> (32 - n));\n}\n\nfunction fn1(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn2(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn3(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn4(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn5(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction RIPEMD160() {\n\tHashBase.call(this, 64);\n\n\t// state\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n}\n\ninherits(RIPEMD160, HashBase);\n\nRIPEMD160.prototype._update = function () {\n\tvar words = ARRAY16;\n\tfor (var j = 0; j < 16; ++j) {\n\t\twords[j] = this._block.readInt32LE(j * 4);\n\t}\n\n\tvar al = this._a | 0;\n\tvar bl = this._b | 0;\n\tvar cl = this._c | 0;\n\tvar dl = this._d | 0;\n\tvar el = this._e | 0;\n\n\tvar ar = this._a | 0;\n\tvar br = this._b | 0;\n\tvar cr = this._c | 0;\n\tvar dr = this._d | 0;\n\tvar er = this._e | 0;\n\n\t// computation\n\tfor (var i = 0; i < 80; i += 1) {\n\t\tvar tl;\n\t\tvar tr;\n\t\tif (i < 16) {\n\t\t\ttl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);\n\t\t\ttr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);\n\t\t} else if (i < 32) {\n\t\t\ttl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);\n\t\t\ttr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);\n\t\t} else if (i < 48) {\n\t\t\ttl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);\n\t\t\ttr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);\n\t\t} else if (i < 64) {\n\t\t\ttl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);\n\t\t\ttr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);\n\t\t} else { // if (i<80) {\n\t\t\ttl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);\n\t\t\ttr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);\n\t\t}\n\n\t\tal = el;\n\t\tel = dl;\n\t\tdl = rotl(cl, 10);\n\t\tcl = bl;\n\t\tbl = tl;\n\n\t\tar = er;\n\t\ter = dr;\n\t\tdr = rotl(cr, 10);\n\t\tcr = br;\n\t\tbr = tr;\n\t}\n\n\t// update state\n\tvar t = (this._b + cl + dr) | 0;\n\tthis._b = (this._c + dl + er) | 0;\n\tthis._c = (this._d + el + ar) | 0;\n\tthis._d = (this._e + al + br) | 0;\n\tthis._e = (this._a + bl + cr) | 0;\n\tthis._a = t;\n};\n\nRIPEMD160.prototype._digest = function () {\n\t// create padding and handle blocks\n\tthis._block[this._blockOffset] = 0x80;\n\tthis._blockOffset += 1;\n\tif (this._blockOffset > 56) {\n\t\tthis._block.fill(0, this._blockOffset, 64);\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\n\tthis._block.fill(0, this._blockOffset, 56);\n\tthis._block.writeUInt32LE(this._length[0], 56);\n\tthis._block.writeUInt32LE(this._length[1], 60);\n\tthis._update();\n\n\t// produce result\n\tvar buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20); // eslint-disable-line no-buffer-constructor\n\tbuffer.writeInt32LE(this._a, 0);\n\tbuffer.writeInt32LE(this._b, 4);\n\tbuffer.writeInt32LE(this._c, 8);\n\tbuffer.writeInt32LE(this._d, 12);\n\tbuffer.writeInt32LE(this._e, 16);\n\treturn buffer;\n};\n\nmodule.exports = RIPEMD160;\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar fround = require('../internals/math-fround');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER);\nvar getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW);\nvar setInternalState = InternalStateModule.set;\nvar NativeArrayBuffer = globalThis[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = globalThis[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = globalThis.Array;\nvar RangeError = globalThis.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(fround(number), 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key, getInternalState) {\n defineBuiltInAccessor(Constructor[PROTOTYPE], key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return boolIsLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var pack = conversion(+value);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n type: ARRAY_BUFFER,\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) {\n this.byteLength = byteLength;\n this.detached = false;\n }\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferState = getInternalArrayBufferState(buffer);\n var bufferLength = bufferState.byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH);\n setInternalState(this, {\n type: DATA_VIEW,\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset,\n bytes: bufferState.bytes\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState);\n addGetter($DataView, 'buffer', getInternalDataViewState);\n addGetter($DataView, 'byteLength', getInternalDataViewState);\n addGetter($DataView, 'byteOffset', getInternalDataViewState);\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new, sonarjs/inconsistent-function-call -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer);\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n\n copyConstructorProperties($ArrayBuffer, NativeArrayBuffer);\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-string-prototype-at -- safe\n return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://tc39.es/ecma262/#sec-string.prototype.at\n$({ target: 'String', proto: true, forced: FORCED }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'https://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'https://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('https://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('https://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('https://x', undefined).host !== 'x';\n});\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar $Array = Array;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\n// eslint-disable-next-line es/no-string-prototype-towellformed -- safe\nvar $toWellFormed = ''.toWellFormed;\nvar REPLACEMENT_CHARACTER = '\\uFFFD';\n\n// Safari bug\nvar TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {\n return call($toWellFormed, 1) !== '1';\n});\n\n// `String.prototype.toWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.towellformed\n$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {\n toWellFormed: function toWellFormed() {\n var S = toString(requireObjectCoercible(this));\n if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S);\n var length = S.length;\n var result = $Array(length);\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i);\n // unpaired surrogate\n else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER;\n // surrogate pair\n else {\n result[i] = charAt(S, i);\n result[++i] = charAt(S, i);\n }\n } return join(result, '');\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n// eslint-disable-next-line es/no-math-log2 -- safe\nmodule.exports = Math.log2 || function log2(x) {\n return log(x) / LN2;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n if (exec(IS_NUMBER_START, chr)) return fork.number();\n switch (chr) {\n case '{':\n return fork.object();\n case '[':\n return fork.array();\n case '\"':\n return fork.string();\n case 't':\n return fork.keyword(true);\n case 'f':\n return fork.keyword(false);\n case 'n':\n return fork.keyword(null);\n } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) === '}' && !expectKeypair) {\n i++;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr === ',') {\n expectKeypair = true;\n i++;\n } else if (chr === '}') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) === ']' && !expectElement) {\n i++;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) === ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) === ']') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) === '-') i++;\n if (at(source, i) === '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n else throw new SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) === '.') i = this.skip(IS_DIGIT, i + 1);\n if (at(source, i) === 'e' || at(source, i) === 'E') {\n i++;\n if (at(source, i) === '+' || at(source, i) === '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlagsDetection = require('../internals/regexp-flags-detection');\nvar regExpFlagsGetterImplementation = require('../internals/regexp-flags');\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && !regExpFlagsDetection.correct) {\n defineBuiltInAccessor(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlagsGetterImplementation\n });\n\n regExpFlagsDetection.correct = true;\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSameTypeAndList(this, list);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\nvar createProperty = require('../internals/create-property');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.es/ecma262/#sec-flattenintoarray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n createProperty(target, targetIndex, element);\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar $RangeError = RangeError;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar nativeDateToISOString = DatePrototype.toISOString;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar getUTCDate = uncurryThis(DatePrototype.getUTCDate);\nvar getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);\nvar getUTCHours = uncurryThis(DatePrototype.getUTCHours);\nvar getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds);\nvar getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes);\nvar getUTCMonth = uncurryThis(DatePrototype.getUTCMonth);\nvar getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds);\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value');\n var date = this;\n var year = getUTCFullYear(date);\n var milliseconds = getUTCMilliseconds(date);\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(getUTCMonth(date) + 1, 2, 0) +\n '-' + padStart(getUTCDate(date), 2, 0) +\n 'T' + padStart(getUTCHours(date), 2, 0) +\n ':' + padStart(getUTCMinutes(date), 2, 0) +\n ':' + padStart(getUTCSeconds(date), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar trunc = require('../internals/math-trunc');\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: trunc\n});\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/ecma262/#sec-array.prototype.tospliced\n$({ target: 'Array', proto: true }, {\n toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = $Array(newLen);\n\n for (; k < actualStart; k++) createProperty(A, k, O[k]);\n for (; k < actualStart + insertCount; k++) createProperty(A, k, arguments[k - actualStart + 2]);\n for (; k < newLen; k++) createProperty(A, k, O[k + actualDeleteCount - insertCount]);\n\n return A;\n }\n});\n\naddToUnscopables('toSpliced');\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar setIterate = require('../internals/set-iterate');\nvar detachTransferable = require('../internals/detach-transferable');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = globalThis.Object;\nvar Array = globalThis.Array;\nvar Date = globalThis.Date;\nvar Error = globalThis.Error;\nvar TypeError = globalThis.TypeError;\nvar PerformanceMark = globalThis.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.1.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new globalThis.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new globalThis.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = globalThis.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new globalThis.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new globalThis.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n if (mapHas(map, value)) return mapGet(map, value);\n\n var type = $type || classof(value);\n var clone, length, options, source, target, i;\n\n if (type === 'SharedArrayBuffer') {\n if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n else clone = value;\n } else {\n var DataView = globalThis.DataView;\n\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (isCallable(value.slice) && !value.resizable) {\n clone = value.slice(0);\n } else {\n length = value.byteLength;\n options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n clone = new ArrayBuffer(length, options);\n source = new DataView(value);\n target = new DataView(clone);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n }\n }\n\n mapSet(map, value, clone);\n\n return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n var C = globalThis[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var C, name, cloned, dataTransfer, i, length, keys, key;\n\n switch (type) {\n case 'Array':\n cloned = Array(lengthOfArrayLike(value));\n break;\n case 'Object':\n cloned = {};\n break;\n case 'Map':\n cloned = new Map();\n break;\n case 'Set':\n cloned = new Set();\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = new (getBuiltIn(name))([]);\n break;\n case 'EvalError':\n case 'RangeError':\n case 'ReferenceError':\n case 'SuppressedError':\n case 'SyntaxError':\n case 'TypeError':\n case 'URIError':\n cloned = new (getBuiltIn(name))();\n break;\n case 'CompileError':\n case 'LinkError':\n case 'RuntimeError':\n cloned = new (getBuiltIn('WebAssembly', name))();\n break;\n default:\n cloned = new Error();\n }\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n break;\n case 'ArrayBuffer':\n case 'SharedArrayBuffer':\n cloned = cloneBuffer(value, map, type);\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float16Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n length = type === 'DataView' ? value.byteLength : value.length;\n cloned = cloneView(value, type, value.byteOffset, length, map);\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n }\n break;\n case 'File':\n if (nativeRestrictedStructuredClone) try {\n cloned = nativeRestrictedStructuredClone(value);\n // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n if (classof(cloned) !== type) cloned = undefined;\n } catch (error) { /* empty */ }\n if (!cloned) try {\n cloned = new File([value], value.name, value);\n } catch (error) { /* empty */ }\n if (!cloned) throwUnpolyfillable(type);\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else cloned = tryNativeRestrictedStructuredClone(value, type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name === 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } else if (name === 'SuppressedError') {\n cloned.error = structuredCloneInternal(value.error, map);\n cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var buffers = new Set();\n var value, type, C, transferred, canvas, context;\n\n while (i < length) {\n value = transfer[i++];\n\n type = classof(value);\n\n if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n }\n\n if (type === 'ArrayBuffer') {\n setAdd(buffers, value);\n continue;\n }\n\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n transferred = nativeStructuredClone(value, { transfer: [value] });\n } else switch (type) {\n case 'ImageBitmap':\n C = globalThis.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'MIDIAccess':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'RTCDataChannel':\n case 'TransformStream':\n case 'WebTransportReceiveStream':\n case 'WebTransportSendStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n mapSet(map, value, transferred);\n }\n\n return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n setIterate(buffers, function (buffer) {\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n nativeRestrictedStructuredClone(buffer, { transfer: [buffer] });\n } else if (isCallable(buffer.transfer)) {\n buffer.transfer();\n } else if (detachTransferable) {\n detachTransferable(buffer);\n } else {\n throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n }\n });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map, buffers;\n\n if (transfer !== undefined) {\n map = new Map();\n buffers = tryToTransfer(transfer, map);\n }\n\n var clone = structuredCloneInternal(value, map);\n\n // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n // https://github.com/zloirock/core-js/issues/1265\n if (buffers) detachBuffers(buffers);\n\n return clone;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isObject(regexp) ? getMethod(regexp, MATCH) : undefined;\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n var flags = toString(getRegExpFlags(rx));\n\n if (stringIndexOf(flags, 'g') === -1) return regExpExec(rx, S);\n\n var fullUnicode = stringIndexOf(flags, 'u') !== -1;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n var wrapper = function wrapper() /* dynamic arguments */{\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\n/* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar Int8Array = globalThis.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\n\nvar callBound = require('call-bound');\n\n/** @type {undefined | ((thisArg: import('.').TypedArray) => Buffer)} */\nvar $typedArrayBuffer = callBound('TypedArray.prototype.buffer', true);\n\nvar isTypedArray = require('is-typed-array');\n\n/** @type {import('.')} */\n// node <= 0.10, < 0.11.4 has a nonconfigurable own property instead of a prototype getter\nmodule.exports = $typedArrayBuffer || function typedArrayBuffer(x) {\n\tif (!isTypedArray(x)) {\n\t\tthrow new $TypeError('Not a Typed Array');\n\t}\n\treturn x.buffer;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar sort = function (array, comparefn) {\n var length = array.length;\n\n if (length < 8) {\n // insertion sort\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n }\n } else {\n // merge sort\n var middle = floor(length / 2);\n var left = sort(arraySlice(array, 0, middle), comparefn);\n var right = sort(arraySlice(array, middle), comparefn);\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n }\n }\n\n return array;\n};\n\nmodule.exports = sort;\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: log10\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-menu[data-v-141e7efc]{--app-menu-entry-growth: calc(var(--default-grid-baseline) * 4);display:flex;flex:1 1;width:0}.app-menu__list[data-v-141e7efc]{display:flex;flex-wrap:nowrap;margin-inline:calc(var(--app-menu-entry-growth)/2)}.app-menu__overflow[data-v-141e7efc]{margin-block:auto}.app-menu__overflow[data-v-141e7efc] .button-vue--vue-tertiary{opacity:.7;margin:3px;filter:var(--background-image-invert-if-bright)}.app-menu__overflow[data-v-141e7efc] .button-vue--vue-tertiary:not([aria-expanded=true]){color:var(--color-background-plain-text)}.app-menu__overflow[data-v-141e7efc] .button-vue--vue-tertiary:not([aria-expanded=true]):hover{opacity:1;background-color:rgba(0,0,0,0) !important}.app-menu__overflow[data-v-141e7efc] .button-vue--vue-tertiary:focus-visible{opacity:1;outline:none !important}.app-menu__overflow-entry[data-v-141e7efc] .action-link__icon{filter:var(--background-invert-if-bright) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AppMenu.vue\"],\"names\":[],\"mappings\":\"AACA,2BAEC,+DAAA,CACA,YAAA,CACA,QAAA,CACA,OAAA,CAEA,iCACC,YAAA,CACA,gBAAA,CACA,kDAAA,CAGD,qCACC,iBAAA,CAGA,+DACC,UAAA,CACA,UAAA,CACA,+CAAA,CAGA,yFACC,wCAAA,CAEA,+FACC,SAAA,CACA,yCAAA,CAIF,6EACC,SAAA,CACA,uBAAA,CAMF,8DAEC,oDAAA\",\"sourcesContent\":[\"\\n.app-menu {\\n\\t// The size the currently focussed entry will grow to show the full name\\n\\t--app-menu-entry-growth: calc(var(--default-grid-baseline) * 4);\\n\\tdisplay: flex;\\n\\tflex: 1 1;\\n\\twidth: 0;\\n\\n\\t&__list {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\tmargin-inline: calc(var(--app-menu-entry-growth) / 2);\\n\\t}\\n\\n\\t&__overflow {\\n\\t\\tmargin-block: auto;\\n\\n\\t\\t// Adjust the overflow NcActions styles as they are directly rendered on the background\\n\\t\\t:deep(.button-vue--vue-tertiary) {\\n\\t\\t\\topacity: .7;\\n\\t\\t\\tmargin: 3px;\\n\\t\\t\\tfilter: var(--background-image-invert-if-bright);\\n\\n\\t\\t\\t/* Remove all background and align text color if not expanded */\\n\\t\\t\\t&:not([aria-expanded=\\\"true\\\"]) {\\n\\t\\t\\t\\tcolor: var(--color-background-plain-text);\\n\\n\\t\\t\\t\\t&:hover {\\n\\t\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\t\\tbackground-color: transparent !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__overflow-entry {\\n\\t\\t:deep(.action-link__icon) {\\n\\t\\t\\t// Icons are bright so invert them if bright color theme == bright background is used\\n\\t\\t\\tfilter: var(--background-invert-if-bright) !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar DISPOSE = wellKnownSymbol('dispose');\n\nif (!hasOwn(IteratorPrototype, DISPOSE)) {\n defineBuiltIn(IteratorPrototype, DISPOSE, function () {\n var $return = getMethod(this, 'return');\n if ($return) call($return, this);\n });\n}\n","'use strict';\nvar has = require('../internals/weak-map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n defineBuiltIn(ErrorPrototype, 'toString', errorToString);\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe\n var object = Object.create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/ecma262/#sec-installerrorcause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.48.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createProperty = require('../internals/create-property');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toPropertyKey = require('../internals/to-property-key');\nvar iterate = require('../internals/iterate');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-groupby -- testing\nvar nativeGroupBy = Object.groupBy;\nvar create = getBuiltIn('Object', 'create');\nvar push = uncurryThis([].push);\n\n// https://bugs.webkit.org/show_bug.cgi?id=271524\nvar DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () {\n return nativeGroupBy('ab', function (it) {\n return it;\n }).a.length !== 1;\n});\n\n// `Object.groupBy` method\n// https://tc39.es/ecma262/#sec-object.groupby\n$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, {\n groupBy: function groupBy(items, callbackfn) {\n requireObjectCoercible(items);\n aCallable(callbackfn);\n var obj = create(null);\n var k = 0;\n iterate(items, function (value) {\n var key = toPropertyKey(callbackfn(value, k++));\n // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n // but since it's a `null` prototype object, we can safely use `in`\n if (key in obj) push(obj[key], value);\n else createProperty(obj, key, [value]);\n });\n return obj;\n }\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\nvar FORCED = !$cosh || $cosh(710) === Infinity;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","'use strict';\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","/*\n * vim: expandtab shiftwidth=4 softtabstop=4\n */\n\nconst dav = {}\n\ndav._XML_CHAR_MAP = {\n '<': '<',\n '>': '>',\n '&': '&',\n '\"': '"',\n \"'\": '''\n};\n\ndav._escapeXml = function(s) {\n return s.replace(/[<>&\"']/g, function (ch) {\n return dav._XML_CHAR_MAP[ch];\n });\n};\n\ndav.Client = function(options) {\n var i;\n for(i in options) {\n this[i] = options[i];\n }\n\n};\n\ndav.Client.prototype = {\n\n baseUrl : null,\n\n userName : null,\n\n password : null,\n\n\n xmlNamespaces : {\n 'DAV:' : 'd'\n },\n\n /**\n * Generates a propFind request.\n *\n * @param {string} url Url to do the propfind request on\n * @param {Array} properties List of properties to retrieve.\n * @param {string} depth \"0\", \"1\" or \"infinity\"\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propFind : function(url, properties, depth, headers) {\n\n if(typeof depth === \"undefined\") {\n depth = '0';\n }\n\n // depth header must be a string, in case a number was passed in\n depth = '' + depth;\n\n headers = headers || {};\n\n headers['Depth'] = depth;\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '\\n' +\n '\\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(properties[ii]);\n if (this.xmlNamespaces[property.namespace]) {\n body+=' <' + this.xmlNamespaces[property.namespace] + ':' + property.name + ' />\\n';\n } else {\n body+=' \\n';\n }\n\n }\n body+=' \\n';\n body+='';\n\n return this.request('PROPFIND', url, headers, body).then(\n function(result) {\n\n if (depth === '0') {\n return {\n status: result.status,\n body: result.body[0],\n xhr: result.xhr\n };\n } else {\n return {\n status: result.status,\n body: result.body,\n xhr: result.xhr\n };\n }\n\n }.bind(this)\n );\n\n },\n\n /**\n * Renders a \"d:set\" block for the given properties.\n *\n * @param {Object.} properties\n * @return {String} XML \"\" block\n */\n _renderPropSet: function(properties) {\n var body = ' \\n' +\n ' \\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(ii);\n var propName;\n var propValue = properties[ii];\n if (this.xmlNamespaces[property.namespace]) {\n propName = this.xmlNamespaces[property.namespace] + ':' + property.name;\n } else {\n propName = 'x:' + property.name + ' xmlns:x=\"' + property.namespace + '\"';\n }\n\n // FIXME: hard-coded for now until we allow properties to\n // specify whether to be escaped or not\n if (propName !== 'd:resourcetype') {\n propValue = dav._escapeXml(propValue);\n }\n body += ' <' + propName + '>' + propValue + '\\n';\n }\n body +=' \\n';\n body +=' \\n';\n return body;\n },\n\n /**\n * Generates a propPatch request.\n *\n * @param {string} url Url to do the proppatch request on\n * @param {Object.} properties List of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propPatch : function(url, properties, headers) {\n headers = headers || {};\n\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '\\n' +\n '} [properties] list of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n mkcol : function(url, properties, headers) {\n var body = '';\n headers = headers || {};\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n if (properties) {\n body =\n '\\n' +\n ' 0) {\n var subNodes = [];\n // filter out text nodes\n for (var j = 0; j < propNode.childNodes.length; j++) {\n var node = propNode.childNodes[j];\n if (node.nodeType === 1) {\n subNodes.push(node);\n }\n }\n if (subNodes.length) {\n content = subNodes;\n }\n }\n\n return content || propNode.textContent || propNode.text || '';\n },\n\n /**\n * Parses a multi-status response body.\n *\n * @param {string} xmlBody\n * @param {Array}\n */\n parseMultiStatus : function(xmlBody) {\n\n var parser = new DOMParser();\n var doc = parser.parseFromString(xmlBody, \"application/xml\");\n\n var resolver = function(foo) {\n var ii;\n for(ii in this.xmlNamespaces) {\n if (this.xmlNamespaces[ii] === foo) {\n return ii;\n }\n }\n }.bind(this);\n\n var responseIterator = doc.evaluate('/d:multistatus/d:response', doc, resolver, XPathResult.ANY_TYPE, null);\n\n var result = [];\n var responseNode = responseIterator.iterateNext();\n\n while(responseNode) {\n\n var response = {\n href : null,\n propStat : []\n };\n\n response.href = doc.evaluate('string(d:href)', responseNode, resolver, XPathResult.ANY_TYPE, null).stringValue;\n\n var propStatIterator = doc.evaluate('d:propstat', responseNode, resolver, XPathResult.ANY_TYPE, null);\n var propStatNode = propStatIterator.iterateNext();\n\n while(propStatNode) {\n var propStat = {\n status : doc.evaluate('string(d:status)', propStatNode, resolver, XPathResult.ANY_TYPE, null).stringValue,\n properties : {},\n };\n\n var propIterator = doc.evaluate('d:prop/*', propStatNode, resolver, XPathResult.ANY_TYPE, null);\n\n var propNode = propIterator.iterateNext();\n while(propNode) {\n var content = this._parsePropNode(propNode);\n propStat.properties['{' + propNode.namespaceURI + '}' + propNode.localName] = content;\n propNode = propIterator.iterateNext();\n\n }\n response.propStat.push(propStat);\n propStatNode = propStatIterator.iterateNext();\n\n\n }\n\n result.push(response);\n responseNode = responseIterator.iterateNext();\n\n }\n\n return result;\n\n },\n\n /**\n * Takes a relative url, and maps it to an absolute url, using the baseUrl\n *\n * @param {string} url\n * @return {string}\n */\n resolveUrl : function(url) {\n\n // Note: this is rudamentary.. not sure yet if it handles every case.\n if (/^https?:\\/\\//i.test(url)) {\n // absolute\n return url;\n }\n\n var baseParts = this.parseUrl(this.baseUrl);\n if (url.charAt('/')) {\n // Url starts with a slash\n return baseParts.root + url;\n }\n\n // Url does not start with a slash, we need grab the base url right up until the last slash.\n var newUrl = baseParts.root + '/';\n if (baseParts.path.lastIndexOf('/')!==-1) {\n newUrl = newUrl = baseParts.path.subString(0, baseParts.path.lastIndexOf('/')) + '/';\n }\n newUrl+=url;\n return url;\n\n },\n\n /**\n * Parses a url and returns its individual components.\n *\n * @param {String} url\n * @return {Object}\n */\n parseUrl : function(url) {\n\n var parts = url.match(/^(?:([A-Za-z]+):)?(\\/{0,3})([0-9.\\-A-Za-z]+)(?::(\\d+))?(?:\\/([^?#]*))?(?:\\?([^#]*))?(?:#(.*))?$/);\n var result = {\n url : parts[0],\n scheme : parts[1],\n host : parts[3],\n port : parts[4],\n path : parts[5],\n query : parts[6],\n fragment : parts[7],\n };\n result.root =\n result.scheme + '://' +\n result.host +\n (result.port ? ':' + result.port : '');\n\n return result;\n\n },\n\n parseClarkNotation : function(propertyName) {\n\n var result = propertyName.match(/^{([^}]+)}(.*)$/);\n if (!result) {\n return;\n }\n\n return {\n name : result[2],\n namespace : result[1]\n };\n\n }\n\n};\n\nmodule.exports = {\n dav,\n Client: dav.Client,\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar pbkdf2Sync = require('pbkdf2').pbkdf2Sync;\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://tc39.es/ecma262/#sec-object.hasown\n$({ target: 'Object', stat: true }, {\n hasOwn: hasOwn\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\n\nexports.pbkdf2 = require('./lib/async');\nexports.pbkdf2Sync = require('./lib/sync');\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-math-sinh -- required for testing\n return Math.sinh(-2e-17) !== -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n var n = +x;\n return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);\n }\n});\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENVIRONMENT = require('../internals/environment');\nvar USER_AGENT = require('../internals/environment-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = globalThis.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {\n var version = globalThis.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar $RangeError = RangeError;\n\nvar PROPER_ORDER = function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error\nvar THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {\n try {\n // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](-0.5, 1);\n } catch (error) {\n return true;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new (getTypedArrayConstructor(O))(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];\n return A;\n} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\n// `DOMException.prototype[@@toStringTag]` property\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;\n var endOfLastMatch = 0;\n var result = '';\n if (isObject(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) return call(replacer, searchValue, O, replaceValue);\n if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = indexOf(string, searchString);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = uncurryThis(1.1.toPrecision);\n\nvar FORCED = fails(function () {\n // IE7-\n return nativeToPrecision(1, undefined) !== '1';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToPrecision({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.es/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toPrecision: function toPrecision(precision) {\n return precision === undefined\n ? nativeToPrecision(thisNumberValue(this))\n : nativeToPrecision(thisNumberValue(this), precision);\n }\n});\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\n// eslint-disable-next-line es/no-nonstandard-error-properties -- safe\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-menu-entry:hover .app-menu-entry__icon,.app-menu-entry:focus-within .app-menu-entry__icon,.app-menu__list:hover .app-menu-entry__icon,.app-menu__list:focus-within .app-menu-entry__icon{margin-block-end:1lh}.app-menu-entry:hover .app-menu-entry__label,.app-menu-entry:focus-within .app-menu-entry__label,.app-menu__list:hover .app-menu-entry__label,.app-menu__list:focus-within .app-menu-entry__label{opacity:1}.app-menu-entry:hover .app-menu-entry--active::before,.app-menu-entry:focus-within .app-menu-entry--active::before,.app-menu__list:hover .app-menu-entry--active::before,.app-menu__list:focus-within .app-menu-entry--active::before{opacity:0}.app-menu-entry:hover .app-menu-icon__unread,.app-menu-entry:focus-within .app-menu-icon__unread,.app-menu__list:hover .app-menu-icon__unread,.app-menu__list:focus-within .app-menu-icon__unread{opacity:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AppMenuEntry.vue\"],\"names\":[],\"mappings\":\"AAOC,8LACC,oBAAA,CAID,kMACC,SAAA,CAID,sOACC,SAAA,CAGD,kMACC,SAAA\",\"sourcesContent\":[\"\\n// Showing the label\\n.app-menu-entry:hover,\\n.app-menu-entry:focus-within,\\n.app-menu__list:hover,\\n.app-menu__list:focus-within {\\n\\t// Move icon up so that the name does not overflow the icon\\n\\t.app-menu-entry__icon {\\n\\t\\tmargin-block-end: 1lh;\\n\\t}\\n\\n\\t// Make the label visible\\n\\t.app-menu-entry__label {\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t// Hide indicator when the text is shown\\n\\t.app-menu-entry--active::before {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t.app-menu-icon__unread {\\n\\t\\topacity: 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n every: function every(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n var n = +x;\n return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1));\n}\n\nvar FORCED = !($asinh && 1 / $asinh(0) > 0);\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n asinh: asinh\n});\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.8';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428a2f98,\n\t0xd728ae22,\n\t0x71374491,\n\t0x23ef65cd,\n\t0xb5c0fbcf,\n\t0xec4d3b2f,\n\t0xe9b5dba5,\n\t0x8189dbbc,\n\t0x3956c25b,\n\t0xf348b538,\n\t0x59f111f1,\n\t0xb605d019,\n\t0x923f82a4,\n\t0xaf194f9b,\n\t0xab1c5ed5,\n\t0xda6d8118,\n\t0xd807aa98,\n\t0xa3030242,\n\t0x12835b01,\n\t0x45706fbe,\n\t0x243185be,\n\t0x4ee4b28c,\n\t0x550c7dc3,\n\t0xd5ffb4e2,\n\t0x72be5d74,\n\t0xf27b896f,\n\t0x80deb1fe,\n\t0x3b1696b1,\n\t0x9bdc06a7,\n\t0x25c71235,\n\t0xc19bf174,\n\t0xcf692694,\n\t0xe49b69c1,\n\t0x9ef14ad2,\n\t0xefbe4786,\n\t0x384f25e3,\n\t0x0fc19dc6,\n\t0x8b8cd5b5,\n\t0x240ca1cc,\n\t0x77ac9c65,\n\t0x2de92c6f,\n\t0x592b0275,\n\t0x4a7484aa,\n\t0x6ea6e483,\n\t0x5cb0a9dc,\n\t0xbd41fbd4,\n\t0x76f988da,\n\t0x831153b5,\n\t0x983e5152,\n\t0xee66dfab,\n\t0xa831c66d,\n\t0x2db43210,\n\t0xb00327c8,\n\t0x98fb213f,\n\t0xbf597fc7,\n\t0xbeef0ee4,\n\t0xc6e00bf3,\n\t0x3da88fc2,\n\t0xd5a79147,\n\t0x930aa725,\n\t0x06ca6351,\n\t0xe003826f,\n\t0x14292967,\n\t0x0a0e6e70,\n\t0x27b70a85,\n\t0x46d22ffc,\n\t0x2e1b2138,\n\t0x5c26c926,\n\t0x4d2c6dfc,\n\t0x5ac42aed,\n\t0x53380d13,\n\t0x9d95b3df,\n\t0x650a7354,\n\t0x8baf63de,\n\t0x766a0abb,\n\t0x3c77b2a8,\n\t0x81c2c92e,\n\t0x47edaee6,\n\t0x92722c85,\n\t0x1482353b,\n\t0xa2bfe8a1,\n\t0x4cf10364,\n\t0xa81a664b,\n\t0xbc423001,\n\t0xc24b8b70,\n\t0xd0f89791,\n\t0xc76c51a3,\n\t0x0654be30,\n\t0xd192e819,\n\t0xd6ef5218,\n\t0xd6990624,\n\t0x5565a910,\n\t0xf40e3585,\n\t0x5771202a,\n\t0x106aa070,\n\t0x32bbd1b8,\n\t0x19a4c116,\n\t0xb8d2d0c8,\n\t0x1e376c08,\n\t0x5141ab53,\n\t0x2748774c,\n\t0xdf8eeb99,\n\t0x34b0bcb5,\n\t0xe19b48a8,\n\t0x391c0cb3,\n\t0xc5c95a63,\n\t0x4ed8aa4a,\n\t0xe3418acb,\n\t0x5b9cca4f,\n\t0x7763e373,\n\t0x682e6ff3,\n\t0xd6b2b8a3,\n\t0x748f82ee,\n\t0x5defb2fc,\n\t0x78a5636f,\n\t0x43172f60,\n\t0x84c87814,\n\t0xa1f0ab72,\n\t0x8cc70208,\n\t0x1a6439ec,\n\t0x90befffa,\n\t0x23631e28,\n\t0xa4506ceb,\n\t0xde82bde9,\n\t0xbef9a3f7,\n\t0xb2c67915,\n\t0xc67178f2,\n\t0xe372532b,\n\t0xca273ece,\n\t0xea26619c,\n\t0xd186b8c7,\n\t0x21c0c207,\n\t0xeada7dd6,\n\t0xcde0eb1e,\n\t0xf57d4f7f,\n\t0xee6ed178,\n\t0x06f067aa,\n\t0x72176fba,\n\t0x0a637dc5,\n\t0xa2c898a6,\n\t0x113f9804,\n\t0xbef90dae,\n\t0x1b710b35,\n\t0x131c471b,\n\t0x28db77f5,\n\t0x23047d84,\n\t0x32caab7b,\n\t0x40c72493,\n\t0x3c9ebe0a,\n\t0x15c9bebc,\n\t0x431d67c4,\n\t0x9c100d4c,\n\t0x4cc5d4be,\n\t0xcb3e42b6,\n\t0x597f299c,\n\t0xfc657e2a,\n\t0x5fcb6fab,\n\t0x3ad6faec,\n\t0x6c44198c,\n\t0x4a475817\n];\n\nvar W = new Array(160);\n\nfunction Sha512() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha512, Hash);\n\nSha512.prototype.init = function () {\n\tthis._ah = 0x6a09e667;\n\tthis._bh = 0xbb67ae85;\n\tthis._ch = 0x3c6ef372;\n\tthis._dh = 0xa54ff53a;\n\tthis._eh = 0x510e527f;\n\tthis._fh = 0x9b05688c;\n\tthis._gh = 0x1f83d9ab;\n\tthis._hh = 0x5be0cd19;\n\n\tthis._al = 0xf3bcc908;\n\tthis._bl = 0x84caa73b;\n\tthis._cl = 0xfe94f82b;\n\tthis._dl = 0x5f1d36f1;\n\tthis._el = 0xade682d1;\n\tthis._fl = 0x2b3e6c1f;\n\tthis._gl = 0xfb41bd6b;\n\tthis._hl = 0x137e2179;\n\n\treturn this;\n};\n\nfunction Ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x, xl) {\n\treturn ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25));\n}\n\nfunction sigma1(x, xl) {\n\treturn ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23));\n}\n\nfunction Gamma0(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7);\n}\n\nfunction Gamma0l(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25));\n}\n\nfunction Gamma1(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6);\n}\n\nfunction Gamma1l(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26));\n}\n\nfunction getCarry(a, b) {\n\treturn (a >>> 0) < (b >>> 0) ? 1 : 0;\n}\n\nSha512.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar ah = this._ah | 0;\n\tvar bh = this._bh | 0;\n\tvar ch = this._ch | 0;\n\tvar dh = this._dh | 0;\n\tvar eh = this._eh | 0;\n\tvar fh = this._fh | 0;\n\tvar gh = this._gh | 0;\n\tvar hh = this._hh | 0;\n\n\tvar al = this._al | 0;\n\tvar bl = this._bl | 0;\n\tvar cl = this._cl | 0;\n\tvar dl = this._dl | 0;\n\tvar el = this._el | 0;\n\tvar fl = this._fl | 0;\n\tvar gl = this._gl | 0;\n\tvar hl = this._hl | 0;\n\n\tfor (var i = 0; i < 32; i += 2) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t\tw[i + 1] = M.readInt32BE((i * 4) + 4);\n\t}\n\tfor (; i < 160; i += 2) {\n\t\tvar xh = w[i - (15 * 2)];\n\t\tvar xl = w[i - (15 * 2) + 1];\n\t\tvar gamma0 = Gamma0(xh, xl);\n\t\tvar gamma0l = Gamma0l(xl, xh);\n\n\t\txh = w[i - (2 * 2)];\n\t\txl = w[i - (2 * 2) + 1];\n\t\tvar gamma1 = Gamma1(xh, xl);\n\t\tvar gamma1l = Gamma1l(xl, xh);\n\n\t\t// w[i] = gamma0 + w[i - 7] + gamma1 + w[i - 16]\n\t\tvar Wi7h = w[i - (7 * 2)];\n\t\tvar Wi7l = w[i - (7 * 2) + 1];\n\n\t\tvar Wi16h = w[i - (16 * 2)];\n\t\tvar Wi16l = w[i - (16 * 2) + 1];\n\n\t\tvar Wil = (gamma0l + Wi7l) | 0;\n\t\tvar Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0;\n\t\tWil = (Wil + gamma1l) | 0;\n\t\tWih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0;\n\t\tWil = (Wil + Wi16l) | 0;\n\t\tWih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0;\n\n\t\tw[i] = Wih;\n\t\tw[i + 1] = Wil;\n\t}\n\n\tfor (var j = 0; j < 160; j += 2) {\n\t\tWih = w[j];\n\t\tWil = w[j + 1];\n\n\t\tvar majh = maj(ah, bh, ch);\n\t\tvar majl = maj(al, bl, cl);\n\n\t\tvar sigma0h = sigma0(ah, al);\n\t\tvar sigma0l = sigma0(al, ah);\n\t\tvar sigma1h = sigma1(eh, el);\n\t\tvar sigma1l = sigma1(el, eh);\n\n\t\t// t1 = h + sigma1 + ch + K[j] + w[j]\n\t\tvar Kih = K[j];\n\t\tvar Kil = K[j + 1];\n\n\t\tvar chh = Ch(eh, fh, gh);\n\t\tvar chl = Ch(el, fl, gl);\n\n\t\tvar t1l = (hl + sigma1l) | 0;\n\t\tvar t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0;\n\t\tt1l = (t1l + chl) | 0;\n\t\tt1h = (t1h + chh + getCarry(t1l, chl)) | 0;\n\t\tt1l = (t1l + Kil) | 0;\n\t\tt1h = (t1h + Kih + getCarry(t1l, Kil)) | 0;\n\t\tt1l = (t1l + Wil) | 0;\n\t\tt1h = (t1h + Wih + getCarry(t1l, Wil)) | 0;\n\n\t\t// t2 = sigma0 + maj\n\t\tvar t2l = (sigma0l + majl) | 0;\n\t\tvar t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0;\n\n\t\thh = gh;\n\t\thl = gl;\n\t\tgh = fh;\n\t\tgl = fl;\n\t\tfh = eh;\n\t\tfl = el;\n\t\tel = (dl + t1l) | 0;\n\t\teh = (dh + t1h + getCarry(el, dl)) | 0;\n\t\tdh = ch;\n\t\tdl = cl;\n\t\tch = bh;\n\t\tcl = bl;\n\t\tbh = ah;\n\t\tbl = al;\n\t\tal = (t1l + t2l) | 0;\n\t\tah = (t1h + t2h + getCarry(al, t1l)) | 0;\n\t}\n\n\tthis._al = (this._al + al) | 0;\n\tthis._bl = (this._bl + bl) | 0;\n\tthis._cl = (this._cl + cl) | 0;\n\tthis._dl = (this._dl + dl) | 0;\n\tthis._el = (this._el + el) | 0;\n\tthis._fl = (this._fl + fl) | 0;\n\tthis._gl = (this._gl + gl) | 0;\n\tthis._hl = (this._hl + hl) | 0;\n\n\tthis._ah = (this._ah + ah + getCarry(this._al, al)) | 0;\n\tthis._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0;\n\tthis._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0;\n\tthis._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0;\n\tthis._eh = (this._eh + eh + getCarry(this._el, el)) | 0;\n\tthis._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0;\n\tthis._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0;\n\tthis._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0;\n};\n\nSha512.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(64);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\twriteInt64BE(this._gh, this._gl, 48);\n\twriteInt64BE(this._hh, this._hl, 56);\n\n\treturn H;\n};\n\nmodule.exports = Sha512;\n","'use strict';\n// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(result, e)) remove(result, e);\n });\n return result;\n};\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (argument === undefined || isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nrequire('../modules/es.symbol');\nrequire('../modules/es.symbol.description');\nrequire('../modules/es.symbol.async-dispose');\nrequire('../modules/es.symbol.async-iterator');\nrequire('../modules/es.symbol.dispose');\nrequire('../modules/es.symbol.has-instance');\nrequire('../modules/es.symbol.is-concat-spreadable');\nrequire('../modules/es.symbol.iterator');\nrequire('../modules/es.symbol.match');\nrequire('../modules/es.symbol.match-all');\nrequire('../modules/es.symbol.replace');\nrequire('../modules/es.symbol.search');\nrequire('../modules/es.symbol.species');\nrequire('../modules/es.symbol.split');\nrequire('../modules/es.symbol.to-primitive');\nrequire('../modules/es.symbol.to-string-tag');\nrequire('../modules/es.symbol.unscopables');\nrequire('../modules/es.error.cause');\nrequire('../modules/es.error.is-error');\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.aggregate-error');\nrequire('../modules/es.aggregate-error.cause');\nrequire('../modules/es.suppressed-error.constructor');\nrequire('../modules/es.array.at');\nrequire('../modules/es.array.concat');\nrequire('../modules/es.array.copy-within');\nrequire('../modules/es.array.every');\nrequire('../modules/es.array.fill');\nrequire('../modules/es.array.filter');\nrequire('../modules/es.array.find');\nrequire('../modules/es.array.find-index');\nrequire('../modules/es.array.find-last');\nrequire('../modules/es.array.find-last-index');\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.for-each');\nrequire('../modules/es.array.from');\nrequire('../modules/es.array.includes');\nrequire('../modules/es.array.index-of');\nrequire('../modules/es.array.is-array');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.array.join');\nrequire('../modules/es.array.last-index-of');\nrequire('../modules/es.array.map');\nrequire('../modules/es.array.of');\nrequire('../modules/es.array.push');\nrequire('../modules/es.array.reduce');\nrequire('../modules/es.array.reduce-right');\nrequire('../modules/es.array.reverse');\nrequire('../modules/es.array.slice');\nrequire('../modules/es.array.some');\nrequire('../modules/es.array.sort');\nrequire('../modules/es.array.species');\nrequire('../modules/es.array.splice');\nrequire('../modules/es.array.to-reversed');\nrequire('../modules/es.array.to-sorted');\nrequire('../modules/es.array.to-spliced');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\nrequire('../modules/es.array.unshift');\nrequire('../modules/es.array.with');\nrequire('../modules/es.array-buffer.constructor');\nrequire('../modules/es.array-buffer.is-view');\nrequire('../modules/es.array-buffer.slice');\nrequire('../modules/es.data-view');\nrequire('../modules/es.data-view.get-float16');\nrequire('../modules/es.data-view.set-float16');\nrequire('../modules/es.array-buffer.detached');\nrequire('../modules/es.array-buffer.transfer');\nrequire('../modules/es.array-buffer.transfer-to-fixed-length');\nrequire('../modules/es.date.get-year');\nrequire('../modules/es.date.now');\nrequire('../modules/es.date.set-year');\nrequire('../modules/es.date.to-gmt-string');\nrequire('../modules/es.date.to-iso-string');\nrequire('../modules/es.date.to-json');\nrequire('../modules/es.date.to-primitive');\nrequire('../modules/es.date.to-string');\nrequire('../modules/es.disposable-stack.constructor');\nrequire('../modules/es.escape');\nrequire('../modules/es.function.bind');\nrequire('../modules/es.function.has-instance');\nrequire('../modules/es.function.name');\nrequire('../modules/es.global-this');\nrequire('../modules/es.iterator.constructor');\nrequire('../modules/es.iterator.concat');\nrequire('../modules/es.iterator.dispose');\nrequire('../modules/es.iterator.drop');\nrequire('../modules/es.iterator.every');\nrequire('../modules/es.iterator.filter');\nrequire('../modules/es.iterator.find');\nrequire('../modules/es.iterator.flat-map');\nrequire('../modules/es.iterator.for-each');\nrequire('../modules/es.iterator.from');\nrequire('../modules/es.iterator.map');\nrequire('../modules/es.iterator.reduce');\nrequire('../modules/es.iterator.some');\nrequire('../modules/es.iterator.take');\nrequire('../modules/es.iterator.to-array');\nrequire('../modules/es.json.is-raw-json');\nrequire('../modules/es.json.parse');\nrequire('../modules/es.json.raw-json');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.json.to-string-tag');\nrequire('../modules/es.map');\nrequire('../modules/es.map.group-by');\nrequire('../modules/es.map.get-or-insert');\nrequire('../modules/es.map.get-or-insert-computed');\nrequire('../modules/es.math.acosh');\nrequire('../modules/es.math.asinh');\nrequire('../modules/es.math.atanh');\nrequire('../modules/es.math.cbrt');\nrequire('../modules/es.math.clz32');\nrequire('../modules/es.math.cosh');\nrequire('../modules/es.math.expm1');\nrequire('../modules/es.math.fround');\nrequire('../modules/es.math.f16round');\nrequire('../modules/es.math.hypot');\nrequire('../modules/es.math.imul');\nrequire('../modules/es.math.log10');\nrequire('../modules/es.math.log1p');\nrequire('../modules/es.math.log2');\nrequire('../modules/es.math.sign');\nrequire('../modules/es.math.sinh');\nrequire('../modules/es.math.sum-precise');\nrequire('../modules/es.math.tanh');\nrequire('../modules/es.math.to-string-tag');\nrequire('../modules/es.math.trunc');\nrequire('../modules/es.number.constructor');\nrequire('../modules/es.number.epsilon');\nrequire('../modules/es.number.is-finite');\nrequire('../modules/es.number.is-integer');\nrequire('../modules/es.number.is-nan');\nrequire('../modules/es.number.is-safe-integer');\nrequire('../modules/es.number.max-safe-integer');\nrequire('../modules/es.number.min-safe-integer');\nrequire('../modules/es.number.parse-float');\nrequire('../modules/es.number.parse-int');\nrequire('../modules/es.number.to-exponential');\nrequire('../modules/es.number.to-fixed');\nrequire('../modules/es.number.to-precision');\nrequire('../modules/es.object.assign');\nrequire('../modules/es.object.create');\nrequire('../modules/es.object.define-getter');\nrequire('../modules/es.object.define-properties');\nrequire('../modules/es.object.define-property');\nrequire('../modules/es.object.define-setter');\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.freeze');\nrequire('../modules/es.object.from-entries');\nrequire('../modules/es.object.get-own-property-descriptor');\nrequire('../modules/es.object.get-own-property-descriptors');\nrequire('../modules/es.object.get-own-property-names');\nrequire('../modules/es.object.get-prototype-of');\nrequire('../modules/es.object.group-by');\nrequire('../modules/es.object.has-own');\nrequire('../modules/es.object.is');\nrequire('../modules/es.object.is-extensible');\nrequire('../modules/es.object.is-frozen');\nrequire('../modules/es.object.is-sealed');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.lookup-getter');\nrequire('../modules/es.object.lookup-setter');\nrequire('../modules/es.object.prevent-extensions');\nrequire('../modules/es.object.proto');\nrequire('../modules/es.object.seal');\nrequire('../modules/es.object.set-prototype-of');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.object.values');\nrequire('../modules/es.parse-float');\nrequire('../modules/es.parse-int');\nrequire('../modules/es.promise');\nrequire('../modules/es.promise.all-settled');\nrequire('../modules/es.promise.any');\nrequire('../modules/es.promise.finally');\nrequire('../modules/es.promise.try');\nrequire('../modules/es.promise.with-resolvers');\nrequire('../modules/es.array.from-async');\nrequire('../modules/es.async-disposable-stack.constructor');\nrequire('../modules/es.async-iterator.async-dispose');\nrequire('../modules/es.reflect.apply');\nrequire('../modules/es.reflect.construct');\nrequire('../modules/es.reflect.define-property');\nrequire('../modules/es.reflect.delete-property');\nrequire('../modules/es.reflect.get');\nrequire('../modules/es.reflect.get-own-property-descriptor');\nrequire('../modules/es.reflect.get-prototype-of');\nrequire('../modules/es.reflect.has');\nrequire('../modules/es.reflect.is-extensible');\nrequire('../modules/es.reflect.own-keys');\nrequire('../modules/es.reflect.prevent-extensions');\nrequire('../modules/es.reflect.set');\nrequire('../modules/es.reflect.set-prototype-of');\nrequire('../modules/es.reflect.to-string-tag');\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.escape');\nrequire('../modules/es.regexp.dot-all');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\nrequire('../modules/es.regexp.sticky');\nrequire('../modules/es.regexp.test');\nrequire('../modules/es.regexp.to-string');\nrequire('../modules/es.set');\nrequire('../modules/es.set.difference.v2');\nrequire('../modules/es.set.intersection.v2');\nrequire('../modules/es.set.is-disjoint-from.v2');\nrequire('../modules/es.set.is-subset-of.v2');\nrequire('../modules/es.set.is-superset-of.v2');\nrequire('../modules/es.set.symmetric-difference.v2');\nrequire('../modules/es.set.union.v2');\nrequire('../modules/es.string.at-alternative');\nrequire('../modules/es.string.code-point-at');\nrequire('../modules/es.string.ends-with');\nrequire('../modules/es.string.from-code-point');\nrequire('../modules/es.string.includes');\nrequire('../modules/es.string.is-well-formed');\nrequire('../modules/es.string.iterator');\nrequire('../modules/es.string.match');\nrequire('../modules/es.string.match-all');\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\nrequire('../modules/es.string.raw');\nrequire('../modules/es.string.repeat');\nrequire('../modules/es.string.replace');\nrequire('../modules/es.string.replace-all');\nrequire('../modules/es.string.search');\nrequire('../modules/es.string.split');\nrequire('../modules/es.string.starts-with');\nrequire('../modules/es.string.substr');\nrequire('../modules/es.string.to-well-formed');\nrequire('../modules/es.string.trim');\nrequire('../modules/es.string.trim-end');\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.anchor');\nrequire('../modules/es.string.big');\nrequire('../modules/es.string.blink');\nrequire('../modules/es.string.bold');\nrequire('../modules/es.string.fixed');\nrequire('../modules/es.string.fontcolor');\nrequire('../modules/es.string.fontsize');\nrequire('../modules/es.string.italics');\nrequire('../modules/es.string.link');\nrequire('../modules/es.string.small');\nrequire('../modules/es.string.strike');\nrequire('../modules/es.string.sub');\nrequire('../modules/es.string.sup');\nrequire('../modules/es.typed-array.float32-array');\nrequire('../modules/es.typed-array.float64-array');\nrequire('../modules/es.typed-array.int8-array');\nrequire('../modules/es.typed-array.int16-array');\nrequire('../modules/es.typed-array.int32-array');\nrequire('../modules/es.typed-array.uint8-array');\nrequire('../modules/es.typed-array.uint8-clamped-array');\nrequire('../modules/es.typed-array.uint16-array');\nrequire('../modules/es.typed-array.uint32-array');\nrequire('../modules/es.typed-array.at');\nrequire('../modules/es.typed-array.copy-within');\nrequire('../modules/es.typed-array.every');\nrequire('../modules/es.typed-array.fill');\nrequire('../modules/es.typed-array.filter');\nrequire('../modules/es.typed-array.find');\nrequire('../modules/es.typed-array.find-index');\nrequire('../modules/es.typed-array.find-last');\nrequire('../modules/es.typed-array.find-last-index');\nrequire('../modules/es.typed-array.for-each');\nrequire('../modules/es.typed-array.from');\nrequire('../modules/es.typed-array.includes');\nrequire('../modules/es.typed-array.index-of');\nrequire('../modules/es.typed-array.iterator');\nrequire('../modules/es.typed-array.join');\nrequire('../modules/es.typed-array.last-index-of');\nrequire('../modules/es.typed-array.map');\nrequire('../modules/es.typed-array.of');\nrequire('../modules/es.typed-array.reduce');\nrequire('../modules/es.typed-array.reduce-right');\nrequire('../modules/es.typed-array.reverse');\nrequire('../modules/es.typed-array.set');\nrequire('../modules/es.typed-array.slice');\nrequire('../modules/es.typed-array.some');\nrequire('../modules/es.typed-array.sort');\nrequire('../modules/es.typed-array.subarray');\nrequire('../modules/es.typed-array.to-locale-string');\nrequire('../modules/es.typed-array.to-reversed');\nrequire('../modules/es.typed-array.to-sorted');\nrequire('../modules/es.typed-array.to-string');\nrequire('../modules/es.typed-array.with');\nrequire('../modules/es.uint8-array.from-base64');\nrequire('../modules/es.uint8-array.from-hex');\nrequire('../modules/es.uint8-array.set-from-base64');\nrequire('../modules/es.uint8-array.set-from-hex');\nrequire('../modules/es.uint8-array.to-base64');\nrequire('../modules/es.uint8-array.to-hex');\nrequire('../modules/es.unescape');\nrequire('../modules/es.weak-map');\nrequire('../modules/es.weak-map.get-or-insert');\nrequire('../modules/es.weak-map.get-or-insert-computed');\nrequire('../modules/es.weak-set');\nrequire('../modules/web.atob');\nrequire('../modules/web.btoa');\nrequire('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.self');\nrequire('../modules/web.structured-clone');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.can-parse');\nrequire('../modules/web.url.parse');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nrequire('../modules/web.url-search-params.delete');\nrequire('../modules/web.url-search-params.has');\nrequire('../modules/web.url-search-params.size');\n\nmodule.exports = require('../internals/path');\n","'use strict';\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar weakmap = new WeakMapHelpers.WeakMap();\nvar set = WeakMapHelpers.set;\nvar remove = WeakMapHelpers.remove;\n\nmodule.exports = function (key) {\n set(weakmap, key, 1);\n remove(weakmap, key);\n return key;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n var Iterator = globalThis.Iterator;\n var IteratorPrototype = Iterator && Iterator.prototype;\n var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n var CLOSED = false;\n\n if (method) try {\n method.call({\n next: function () { return { done: true }; },\n 'return': function () { CLOSED = true; }\n }, -1);\n } catch (error) {\n // https://bugs.webkit.org/show_bug.cgi?id=291195\n if (!(error instanceof ExpectedError)) CLOSED = false;\n }\n\n if (!CLOSED) return method;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible(target);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = globalThis.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = globalThis.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index < length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = create(null);\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index < length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n result += chr;\n // ignore non-capturing groups\n if (stringSlice(string, index + 1, index + 3) === '?:') {\n continue;\n }\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(globalThis, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n return {\n size: size,\n has: function () {\n return true;\n },\n keys: function () {\n throw new Error('e');\n }\n };\n};\n\nmodule.exports = function (name, callback) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n // also covered engines with\n // https://bugs.webkit.org/show_bug.cgi?id=272679\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n if (!callback) return true;\n // early V8 implementation bug\n // https://issues.chromium.org/issues/351332634\n try {\n new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n return false;\n } catch (error) {\n var set = new Set([1, 2]);\n return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n }\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toObject = require('../internals/to-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(toObject(template).raw);\n var literalSegments = lengthOfArrayLike(rawTemplate);\n if (!literalSegments) return '';\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (true) {\n push(elements, toString(rawTemplate[i++]));\n if (i === literalSegments) return join(elements, '');\n if (i < argumentsLength) push(elements, toString(arguments[i]));\n }\n }\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * Strengthify - show the weakness of a password (uses zxcvbn for this)\n * https://github.com/MorrisJobke/strengthify\n * Version: 0.5.9\n * License: The MIT License (MIT)\n * Copyright (c) 2013-2020 Morris Jobke \n */\n\n.strengthify-wrapper {\n position: relative;\n}\n\n.strengthify-wrapper > * {\n\t-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\t-webkit-transition:all .5s ease-in-out;\n\t-moz-transition:all .5s ease-in-out;\n\ttransition:all .5s ease-in-out;\n}\n\n.strengthify-bg, .strengthify-container, .strengthify-separator {\n\theight: 3px;\n}\n\n.strengthify-bg, .strengthify-container {\n\tdisplay: block;\n\tposition: absolute;\n\twidth: 100%;\n}\n\n.strengthify-bg {\n\tbackground-color: #BBB;\n}\n\n.strengthify-separator {\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground-color: #FFF;\n\twidth: 1px;\n\tz-index: 10;\n}\n\n.password-bad {\n\tbackground-color: #C33;\n}\n.password-medium {\n\tbackground-color: #F80;\n}\n.password-good {\n\tbackground-color: #3C3;\n}\n\ndiv[data-strengthifyMessage] {\n padding: 3px 8px;\n}\n\n.strengthify-tiles{\n\tfloat: right;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/strengthify/strengthify.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;EAME;;AAEF;IACI,kBAAkB;AACtB;;AAEA;CACC,+DAA+D;CAC/D,wBAAwB;CACxB,UAAU;CACV,sCAAsC;CACtC,mCAAmC;CACnC,8BAA8B;AAC/B;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,cAAc;CACd,kBAAkB;CAClB,WAAW;AACZ;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,qBAAqB;CACrB,kBAAkB;CAClB,sBAAsB;CACtB,UAAU;CACV,WAAW;AACZ;;AAEA;CACC,sBAAsB;AACvB;AACA;CACC,sBAAsB;AACvB;AACA;CACC,sBAAsB;AACvB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;CACC,YAAY;AACb\",\"sourcesContent\":[\"/**\\n * Strengthify - show the weakness of a password (uses zxcvbn for this)\\n * https://github.com/MorrisJobke/strengthify\\n * Version: 0.5.9\\n * License: The MIT License (MIT)\\n * Copyright (c) 2013-2020 Morris Jobke \\n */\\n\\n.strengthify-wrapper {\\n position: relative;\\n}\\n\\n.strengthify-wrapper > * {\\n\\t-ms-filter:\\\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\\\";\\n\\tfilter: alpha(opacity=0);\\n\\topacity: 0;\\n\\t-webkit-transition:all .5s ease-in-out;\\n\\t-moz-transition:all .5s ease-in-out;\\n\\ttransition:all .5s ease-in-out;\\n}\\n\\n.strengthify-bg, .strengthify-container, .strengthify-separator {\\n\\theight: 3px;\\n}\\n\\n.strengthify-bg, .strengthify-container {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\twidth: 100%;\\n}\\n\\n.strengthify-bg {\\n\\tbackground-color: #BBB;\\n}\\n\\n.strengthify-separator {\\n\\tdisplay: inline-block;\\n\\tposition: absolute;\\n\\tbackground-color: #FFF;\\n\\twidth: 1px;\\n\\tz-index: 10;\\n}\\n\\n.password-bad {\\n\\tbackground-color: #C33;\\n}\\n.password-medium {\\n\\tbackground-color: #F80;\\n}\\n.password-good {\\n\\tbackground-color: #3C3;\\n}\\n\\ndiv[data-strengthifyMessage] {\\n padding: 3px 8px;\\n}\\n\\n.strengthify-tiles{\\n\\tfloat: right;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = getTypedArrayConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, {\n parseFloat: parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPropertyKey(propertyKey);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineSetter__: function __defineSetter__(P, setter) {\n definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineBuiltInAccessor(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function sticky() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nvar hex2 = /^[\\da-f]{2}$/i;\nvar hex4 = /^[\\da-f]{4}$/i;\n\n// `unescape` method\n// https://tc39.es/ecma262/#sec-unescape-string\n$({ global: true }, {\n unescape: function unescape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, part;\n while (index < length) {\n chr = charAt(str, index++);\n if (chr === '%') {\n if (charAt(str, index) === 'u') {\n part = stringSlice(str, index + 1, index + 5);\n if (exec(hex4, part)) {\n result += fromCharCode(parseInt(part, 16));\n index += 5;\n continue;\n }\n } else {\n part = stringSlice(str, index, index + 2);\n if (exec(hex2, part)) {\n result += fromCharCode(parseInt(part, 16));\n index += 2;\n continue;\n }\n }\n }\n result += chr;\n } return result;\n }\n});\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsert` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(aWeakMap(this), key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number !== number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent += eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[index - 1] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa += pow(2, mantissaLength);\n exponent -= eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorStack = require('../internals/error-stack-install');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar fails = require('../internals/fails');\nvar IS_PURE = require('../internals/is-pure');\n\nvar NativeSuppressedError = globalThis.SuppressedError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\n\n// https://github.com/oven-sh/bun/issues/9282\nvar WRONG_ARITY = !!NativeSuppressedError && NativeSuppressedError.length !== 3;\n\n// https://github.com/oven-sh/bun/issues/9283\nvar EXTRA_ARGS_SUPPORT = !!NativeSuppressedError && fails(function () {\n return new NativeSuppressedError(1, 2, 3, { cause: 4 }).cause === 4;\n});\n\nvar PATCH = WRONG_ARITY || EXTRA_ARGS_SUPPORT;\n\nvar $SuppressedError = function SuppressedError(error, suppressed, message) {\n var isInstance = isPrototypeOf(SuppressedErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = PATCH && (!isInstance || getPrototypeOf(this) === SuppressedErrorPrototype)\n ? new NativeSuppressedError()\n : setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);\n } else {\n that = isInstance ? this : create(SuppressedErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $SuppressedError, that.stack, 1);\n createNonEnumerableProperty(that, 'error', error);\n createNonEnumerableProperty(that, 'suppressed', suppressed);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($SuppressedError, $Error);\nelse copyConstructorProperties($SuppressedError, $Error, { name: true });\n\nvar SuppressedErrorPrototype = $SuppressedError.prototype = PATCH ? NativeSuppressedError.prototype : create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $SuppressedError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'SuppressedError')\n});\n\nif (PATCH && !IS_PURE) SuppressedErrorPrototype.constructor = $SuppressedError;\n\n// `SuppressedError` constructor\n// https://github.com/tc39/proposal-explicit-resource-management\n$({ global: true, constructor: true, arity: 3, forced: PATCH }, {\n SuppressedError: $SuppressedError\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.contact[data-v-56b7b257]{display:flex;position:relative;align-items:center;padding:3px;padding-inline-start:10px}.contact__action__icon[data-v-56b7b257]{width:20px;height:20px;padding:calc((var(--default-clickable-area) - 20px)/2);filter:var(--background-invert-if-dark)}.contact__avatar[data-v-56b7b257]{display:inherit}.contact__body[data-v-56b7b257]{flex-grow:1;padding-inline-start:10px;margin-inline-start:10px;min-width:0}.contact__body div[data-v-56b7b257]{position:relative;width:100%;overflow-x:hidden;text-overflow:ellipsis;margin:-1px 0}.contact__body div[data-v-56b7b257]:first-of-type{margin-top:0}.contact__body div[data-v-56b7b257]:last-of-type{margin-bottom:0}.contact__body__last-message[data-v-56b7b257],.contact__body__status-message[data-v-56b7b257],.contact__body__email-address[data-v-56b7b257]{color:var(--color-text-maxcontrast)}.contact__body[data-v-56b7b257]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}.contact .other-actions[data-v-56b7b257]{width:16px;height:16px;cursor:pointer}.contact .other-actions img[data-v-56b7b257]{filter:var(--background-invert-if-dark)}.contact button.other-actions[data-v-56b7b257]{width:44px}.contact button.other-actions[data-v-56b7b257]:focus{border-color:rgba(0,0,0,0);box-shadow:0 0 0 2px var(--color-main-text)}.contact button.other-actions[data-v-56b7b257]:focus-visible{border-radius:var(--border-radius-pill)}.contact .menu[data-v-56b7b257]{top:47px;margin-inline-end:13px}.contact .popovermenu[data-v-56b7b257]::after{inset-inline-end:2px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/ContactsMenu/ContactMenuEntry.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,WAAA,CACA,yBAAA,CAGC,wCACC,UAAA,CACA,WAAA,CACA,sDAAA,CACA,uCAAA,CAIF,kCACC,eAAA,CAGD,gCACC,WAAA,CACA,yBAAA,CACA,wBAAA,CACA,WAAA,CAEA,oCACC,iBAAA,CACA,UAAA,CACA,iBAAA,CACA,sBAAA,CACA,aAAA,CAED,kDACC,YAAA,CAED,iDACC,eAAA,CAGD,6IACC,mCAAA,CAGD,8CACC,4DAAA,CACA,mDAAA,CAIF,yCACC,UAAA,CACA,WAAA,CACA,cAAA,CAEA,6CACC,uCAAA,CAIF,+CACC,UAAA,CAEA,qDACC,0BAAA,CACA,2CAAA,CAGD,6DACC,uCAAA,CAKF,gCACC,QAAA,CACA,sBAAA,CAGD,8CACC,oBAAA\",\"sourcesContent\":[\"\\n.contact {\\n\\tdisplay: flex;\\n\\tposition: relative;\\n\\talign-items: center;\\n\\tpadding: 3px;\\n\\tpadding-inline-start: 10px;\\n\\n\\t&__action {\\n\\t\\t&__icon {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tpadding: calc((var(--default-clickable-area) - 20px) / 2);\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__avatar {\\n\\t\\tdisplay: inherit;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tflex-grow: 1;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tmargin-inline-start: 10px;\\n\\t\\tmin-width: 0;\\n\\n\\t\\tdiv {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\toverflow-x: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tmargin: -1px 0;\\n\\t\\t}\\n\\t\\tdiv:first-of-type {\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t}\\n\\t\\tdiv:last-of-type {\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\t&__last-message, &__status-message, &__email-address {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\\n\\t\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.other-actions {\\n\\t\\twidth: 16px;\\n\\t\\theight: 16px;\\n\\t\\tcursor: pointer;\\n\\n\\t\\timg {\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\t}\\n\\n\\tbutton.other-actions {\\n\\t\\twidth: 44px;\\n\\n\\t\\t&:focus {\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-main-text);\\n\\t\\t}\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\t}\\n\\t}\\n\\n\\t/* actions menu */\\n\\t.menu {\\n\\t\\ttop: 47px;\\n\\t\\tmargin-inline-end: 13px;\\n\\t}\\n\\n\\t.popovermenu::after {\\n\\t\\tinset-inline-end: 2px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n var constructor = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n constructor[SPECIES] = function () { return re; };\n re = { constructor: constructor, flags: '' };\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = globalThis.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n // eslint-disable-next-line sonarjs/inconsistent-function-call -- ok\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\n// prototype class for hash functions\nfunction Hash(blockSize, finalSize) {\n\tthis._block = Buffer.alloc(blockSize);\n\tthis._finalSize = finalSize;\n\tthis._blockSize = blockSize;\n\tthis._len = 0;\n}\n\nHash.prototype.update = function (data, enc) {\n\t/* eslint no-param-reassign: 0 */\n\tdata = toBuffer(data, enc || 'utf8');\n\n\tvar block = this._block;\n\tvar blockSize = this._blockSize;\n\tvar length = data.length;\n\tvar accum = this._len;\n\n\tfor (var offset = 0; offset < length;) {\n\t\tvar assigned = accum % blockSize;\n\t\tvar remainder = Math.min(length - offset, blockSize - assigned);\n\n\t\tfor (var i = 0; i < remainder; i++) {\n\t\t\tblock[assigned + i] = data[offset + i];\n\t\t}\n\n\t\taccum += remainder;\n\t\toffset += remainder;\n\n\t\tif ((accum % blockSize) === 0) {\n\t\t\tthis._update(block);\n\t\t}\n\t}\n\n\tthis._len += length;\n\treturn this;\n};\n\nHash.prototype.digest = function (enc) {\n\tvar rem = this._len % this._blockSize;\n\n\tthis._block[rem] = 0x80;\n\n\t/*\n\t * zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n\t * non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n\t */\n\tthis._block.fill(0, rem + 1);\n\n\tif (rem >= this._finalSize) {\n\t\tthis._update(this._block);\n\t\tthis._block.fill(0);\n\t}\n\n\tvar bits = this._len * 8;\n\n\t// uint32\n\tif (bits <= 0xffffffff) {\n\t\tthis._block.writeUInt32BE(bits, this._blockSize - 4);\n\n\t\t// uint64\n\t} else {\n\t\tvar lowBits = (bits & 0xffffffff) >>> 0;\n\t\tvar highBits = (bits - lowBits) / 0x100000000;\n\n\t\tthis._block.writeUInt32BE(highBits, this._blockSize - 8);\n\t\tthis._block.writeUInt32BE(lowBits, this._blockSize - 4);\n\t}\n\n\tthis._update(this._block);\n\tvar hash = this._hash();\n\n\treturn enc ? hash.toString(enc) : hash;\n};\n\nHash.prototype._update = function () {\n\tthrow new Error('_update must be implemented by subclass');\n};\n\nmodule.exports = Hash;\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"images/ui-icons_1d2d44_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"images/ui-icons_ffffff_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"images/ui-icons_ffd27a_256x240.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"images/ui-bg_diagonals-thick_20_666666_40x40.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"images/ui-bg_flat_10_000000_40x100.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ui-widget-content{border:1px solid var(--color-border);background:var(--color-main-background) none;color:var(--color-main-text)}.ui-widget-content a{color:var(--color-main-text)}.ui-widget-header{border:none;color:var(--color-main-text);background-image:none}.ui-widget-header a{color:var(--color-main-text)}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid var(--color-border);background:var(--color-main-background) none;font-weight:bold;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ddd;background:var(--color-main-background) none;font-weight:bold;color:var(--color-main-text)}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:var(--color-main-text)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid var(--color-primary-element);background:var(--color-main-background) none;font-weight:bold;color:var(--color-main-text)}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:var(--color-main-text)}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid var(--color-main-background);background:var(--color-main-background) none;color:var(--color-main-text);font-weight:600}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:var(--color-text-maxcontrast)}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:var(--color-error);background:var(--color-error) none;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-state-default .ui-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.ui-state-active .ui-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.ui-state-highlight .ui-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___})}.ui-icon.ui-icon-none{display:none}.ui-widget-overlay{background:#666 url(${___CSS_LOADER_URL_REPLACEMENT_3___}) 50% 50% repeat;opacity:.5}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(${___CSS_LOADER_URL_REPLACEMENT_4___}) 50% 50% repeat-x;opacity:.2;border-radius:5px}.ui-tabs{border:none}.ui-tabs .ui-tabs-nav.ui-corner-all{border-end-start-radius:0;border-end-end-radius:0}.ui-tabs .ui-tabs-nav{background:none;margin-bottom:15px}.ui-tabs .ui-tabs-nav .ui-state-default{border:none;border-bottom:1px solid rgba(0,0,0,0);font-weight:normal;margin:0 !important;padding:0 !important}.ui-tabs .ui-tabs-nav .ui-state-hover,.ui-tabs .ui-tabs-nav .ui-state-active{border:none;border-bottom:1px solid var(--color-main-text);color:var(--color-main-text)}.ui-tabs .ui-tabs-nav .ui-state-hover a,.ui-tabs .ui-tabs-nav .ui-state-hover a:link,.ui-tabs .ui-tabs-nav .ui-state-hover a:hover,.ui-tabs .ui-tabs-nav .ui-state-hover a:visited,.ui-tabs .ui-tabs-nav .ui-state-active a,.ui-tabs .ui-tabs-nav .ui-state-active a:link,.ui-tabs .ui-tabs-nav .ui-state-active a:hover,.ui-tabs .ui-tabs-nav .ui-state-active a:visited{color:var(--color-main-text)}.ui-tabs .ui-tabs-nav .ui-state-active{font-weight:bold}.ui-autocomplete.ui-menu{padding:0}.ui-autocomplete.ui-menu.item-count-1,.ui-autocomplete.ui-menu.item-count-2{overflow-y:hidden}.ui-autocomplete.ui-menu .ui-menu-item a{color:var(--color-text-maxcontrast);display:block;padding:4px;padding-inline-start:14px}.ui-autocomplete.ui-menu .ui-menu-item a.ui-state-focus,.ui-autocomplete.ui-menu .ui-menu-item a.ui-state-active{box-shadow:inset 4px 0 var(--color-primary-element);color:var(--color-main-text)}.ui-autocomplete.ui-widget-content{background:var(--color-main-background);border-top:none}.ui-autocomplete.ui-corner-all{border-radius:0;border-end-start-radius:var(--border-radius);border-end-end-radius:var(--border-radius)}.ui-autocomplete .ui-state-hover,.ui-autocomplete .ui-widget-content .ui-state-hover,.ui-autocomplete .ui-widget-header .ui-state-hover,.ui-autocomplete .ui-state-focus,.ui-autocomplete .ui-widget-content .ui-state-focus,.ui-autocomplete .ui-widget-header .ui-state-focus{border:1px solid rgba(0,0,0,0);background:inherit;color:var(--color-primary-element)}.ui-autocomplete .ui-menu-item a{border-radius:0 !important}.ui-button.primary{background-color:var(--color-primary-element);color:var(--color-primary-element-text);border:1px solid var(--color-primary-element-text)}.ui-button:hover{font-weight:bold !important}.ui-draggable-handle,.ui-selectable{touch-action:pan-y}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/jquery/css/jquery-ui-fixes.scss\"],\"names\":[],\"mappings\":\"AAMA,mBACC,oCAAA,CACA,4CAAA,CACA,4BAAA,CAGD,qBACC,4BAAA,CAGD,kBACC,WAAA,CACA,4BAAA,CACA,qBAAA,CAGD,oBACC,4BAAA,CAKD,2FAGC,oCAAA,CACA,4CAAA,CACA,gBAAA,CACA,UAAA,CAGD,yEAGC,UAAA,CAGD,0KAMC,qBAAA,CACA,4CAAA,CACA,gBAAA,CACA,4BAAA,CAGD,2FAIC,4BAAA,CAGD,wFAGC,6CAAA,CACA,4CAAA,CACA,gBAAA,CACA,4BAAA,CAGD,sEAGC,4BAAA,CAKD,iGAGC,6CAAA,CACA,4CAAA,CACA,4BAAA,CACA,eAAA,CAGD,uGAGC,mCAAA,CAGD,qFAGC,yBAAA,CACA,kCAAA,CACA,UAAA,CAGD,2FAGC,UAAA,CAGD,oGAGC,UAAA,CAKD,2BACC,wDAAA,CAGD,kDAEC,wDAAA,CAGD,0BACC,wDAAA,CAGD,6BACC,wDAAA,CAGD,uDAEC,wDAAA,CAGD,sBACC,YAAA,CAMD,mBACC,sEAAA,CACA,UAAA,CAGD,kBACC,oBAAA,CACA,WAAA,CACA,wEAAA,CACA,UAAA,CACA,iBAAA,CAID,SACC,WAAA,CAEA,oCACC,yBAAA,CACA,uBAAA,CAGD,sBACC,eAAA,CACA,kBAAA,CAEA,wCACC,WAAA,CACA,qCAAA,CACA,kBAAA,CACA,mBAAA,CACA,oBAAA,CAGD,6EAEC,WAAA,CACA,8CAAA,CACA,4BAAA,CACA,0WACC,4BAAA,CAGF,uCACC,gBAAA,CAOF,yBACC,SAAA,CAIA,4EAEC,iBAAA,CAGD,yCACC,mCAAA,CACA,aAAA,CACA,WAAA,CACA,yBAAA,CAEA,iHACC,mDAAA,CACA,4BAAA,CAKH,mCACC,uCAAA,CACA,eAAA,CAGD,+BACC,eAAA,CACA,4CAAA,CACA,0CAAA,CAGD,gRAKC,8BAAA,CACA,kBAAA,CACA,kCAAA,CAIA,iCACC,0BAAA,CAKH,mBACC,6CAAA,CACA,uCAAA,CACA,kDAAA,CAID,iBACI,2BAAA,CAKJ,oCAEC,kBAAA\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/* Component containers\\n----------------------------------*/\\n.ui-widget-content {\\n\\tborder: 1px solid var(--color-border);\\n\\tbackground: var(--color-main-background) none;\\n\\tcolor: var(--color-main-text);\\n}\\n\\n.ui-widget-content a {\\n\\tcolor: var(--color-main-text);\\n}\\n\\n.ui-widget-header {\\n\\tborder: none;\\n\\tcolor: var(--color-main-text);\\n\\tbackground-image: none;\\n}\\n\\n.ui-widget-header a {\\n\\tcolor: var(--color-main-text);\\n}\\n\\n/* Interaction states\\n----------------------------------*/\\n.ui-state-default,\\n.ui-widget-content .ui-state-default,\\n.ui-widget-header .ui-state-default {\\n\\tborder: 1px solid var(--color-border);\\n\\tbackground: var(--color-main-background) none;\\n\\tfont-weight: bold;\\n\\tcolor: #555;\\n}\\n\\n.ui-state-default a,\\n.ui-state-default a:link,\\n.ui-state-default a:visited {\\n\\tcolor: #555;\\n}\\n\\n.ui-state-hover,\\n.ui-widget-content .ui-state-hover,\\n.ui-widget-header .ui-state-hover,\\n.ui-state-focus,\\n.ui-widget-content .ui-state-focus,\\n.ui-widget-header .ui-state-focus {\\n\\tborder: 1px solid #ddd;\\n\\tbackground: var(--color-main-background) none;\\n\\tfont-weight: bold;\\n\\tcolor: var(--color-main-text);\\n}\\n\\n.ui-state-hover a,\\n.ui-state-hover a:hover,\\n.ui-state-hover a:link,\\n.ui-state-hover a:visited {\\n\\tcolor: var(--color-main-text);\\n}\\n\\n.ui-state-active,\\n.ui-widget-content .ui-state-active,\\n.ui-widget-header .ui-state-active {\\n\\tborder: 1px solid var(--color-primary-element);\\n\\tbackground: var(--color-main-background) none;\\n\\tfont-weight: bold;\\n\\tcolor: var(--color-main-text);\\n}\\n\\n.ui-state-active a,\\n.ui-state-active a:link,\\n.ui-state-active a:visited {\\n\\tcolor: var(--color-main-text);\\n}\\n\\n/* Interaction Cues\\n----------------------------------*/\\n.ui-state-highlight,\\n.ui-widget-content .ui-state-highlight,\\n.ui-widget-header .ui-state-highlight {\\n\\tborder: 1px solid var(--color-main-background);\\n\\tbackground: var(--color-main-background) none;\\n\\tcolor: var(--color-main-text);\\n\\tfont-weight: 600;\\n}\\n\\n.ui-state-highlight a,\\n.ui-widget-content .ui-state-highlight a,\\n.ui-widget-header .ui-state-highlight a {\\n\\tcolor: var(--color-text-maxcontrast);\\n}\\n\\n.ui-state-error,\\n.ui-widget-content .ui-state-error,\\n.ui-widget-header .ui-state-error {\\n\\tborder: var(--color-error);\\n\\tbackground: var(--color-error) none;\\n\\tcolor: #ffffff;\\n}\\n\\n.ui-state-error a,\\n.ui-widget-content .ui-state-error a,\\n.ui-widget-header .ui-state-error a {\\n\\tcolor: #ffffff;\\n}\\n\\n.ui-state-error-text,\\n.ui-widget-content .ui-state-error-text,\\n.ui-widget-header .ui-state-error-text {\\n\\tcolor: #ffffff;\\n}\\n\\n/* Icons\\n----------------------------------*/\\n.ui-state-default .ui-icon {\\n\\tbackground-image: url('images/ui-icons_1d2d44_256x240.png');\\n}\\n\\n.ui-state-hover .ui-icon,\\n.ui-state-focus .ui-icon {\\n\\tbackground-image: url('images/ui-icons_1d2d44_256x240.png');\\n}\\n\\n.ui-state-active .ui-icon {\\n\\tbackground-image: url('images/ui-icons_1d2d44_256x240.png');\\n}\\n\\n.ui-state-highlight .ui-icon {\\n\\tbackground-image: url('images/ui-icons_ffffff_256x240.png');\\n}\\n\\n.ui-state-error .ui-icon,\\n.ui-state-error-text .ui-icon {\\n\\tbackground-image: url('images/ui-icons_ffd27a_256x240.png');\\n}\\n\\n.ui-icon.ui-icon-none {\\n\\tdisplay: none;\\n}\\n\\n/* Misc visuals\\n----------------------------------*/\\n/* Overlays */\\n.ui-widget-overlay {\\n\\tbackground: #666666 url('images/ui-bg_diagonals-thick_20_666666_40x40.png') 50% 50% repeat;\\n\\topacity: .5;\\n}\\n\\n.ui-widget-shadow {\\n\\tmargin: -5px 0 0 -5px;\\n\\tpadding: 5px;\\n\\tbackground: #000000 url('images/ui-bg_flat_10_000000_40x100.png') 50% 50% repeat-x;\\n\\topacity: .2;\\n\\tborder-radius: 5px;\\n}\\n\\n/* Tabs customizations */\\n.ui-tabs {\\n\\tborder: none;\\n\\n\\t.ui-tabs-nav.ui-corner-all {\\n\\t\\tborder-end-start-radius: 0;\\n\\t\\tborder-end-end-radius: 0;\\n\\t}\\n\\n\\t.ui-tabs-nav {\\n\\t\\tbackground: none;\\n\\t\\tmargin-bottom: 15px;\\n\\n\\t\\t.ui-state-default {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tborder-bottom: 1px solid transparent;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t}\\n\\n\\t\\t.ui-state-hover,\\n\\t\\t.ui-state-active {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tborder-bottom: 1px solid var(--color-main-text);\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\ta, a:link, a:hover, a:visited {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.ui-state-active {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Select menus */\\n.ui-autocomplete {\\n\\t&.ui-menu {\\n\\t\\tpadding: 0;\\n\\n\\t\\t/* scrolling starts from three items,\\n\\t\\t * so hide overflow and scrollbars for a clean layout */\\n\\t\\t&.item-count-1,\\n\\t\\t&.item-count-2 {\\n\\t\\t\\toverflow-y: hidden;\\n\\t\\t}\\n\\n\\t\\t.ui-menu-item a {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tpadding: 4px;\\n\\t\\t\\tpadding-inline-start: 14px;\\n\\n\\t\\t\\t&.ui-state-focus, &.ui-state-active {\\n\\t\\t\\t\\tbox-shadow: inset 4px 0 var(--color-primary-element);\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ui-widget-content {\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tborder-top: none;\\n\\t}\\n\\n\\t&.ui-corner-all {\\n\\t\\tborder-radius: 0;\\n\\t\\tborder-end-start-radius: var(--border-radius);\\n\\t\\tborder-end-end-radius: var(--border-radius);\\n\\t}\\n\\n\\t.ui-state-hover, .ui-widget-content .ui-state-hover,\\n\\t.ui-widget-header .ui-state-hover,\\n\\t.ui-state-focus,\\n\\t.ui-widget-content .ui-state-focus,\\n\\t.ui-widget-header .ui-state-focus {\\n\\t\\tborder: 1px solid transparent;\\n\\t\\tbackground: inherit;\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n\\n\\t.ui-menu-item {\\n\\t\\ta {\\n\\t\\t\\tborder-radius: 0 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ui-button.primary {\\n\\tbackground-color: var(--color-primary-element);\\n\\tcolor: var(--color-primary-element-text);\\n\\tborder: 1px solid var(--color-primary-element-text);\\n}\\n\\n// fix ui-buttons on hover\\n.ui-button:hover {\\n font-weight:bold !important;\\n}\\n\\n\\n/* DRAGGABLE */\\n.ui-draggable-handle,\\n.ui-selectable {\\n\\ttouch-action: pan-y;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isObject(separator) ? getMethod(separator, SPLIT) : undefined;\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (S) {\n var R = anObject(this);\n var string = toString(S);\n var exec = R.exec;\n if (!isCallable(exec)) return call(nativeTest, R, string);\n var result = call(exec, R, string);\n if (result === null) return false;\n anObject(result);\n return true;\n }\n});\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar DISPOSE = wellKnownSymbol('dispose');\n\nvar push = uncurryThis([].push);\n\n// `GetDisposeMethod` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-getdisposemethod\nvar getDisposeMethod = function (V, hint) {\n if (hint === 'async-dispose') {\n var method = getMethod(V, ASYNC_DISPOSE);\n if (method !== undefined) return method;\n method = getMethod(V, DISPOSE);\n if (method === undefined) return method;\n return function () {\n var O = this;\n var Promise = getBuiltIn('Promise');\n return new Promise(function (resolve) {\n call(method, O);\n resolve(undefined);\n });\n };\n } return getMethod(V, DISPOSE);\n};\n\n// `CreateDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-createdisposableresource\nvar createDisposableResource = function (V, hint, method) {\n if (arguments.length < 3 && !isNullOrUndefined(V)) {\n method = aCallable(getDisposeMethod(anObject(V), hint));\n }\n\n return method === undefined ? function () {\n return undefined;\n } : bind(method, V);\n};\n\n// `AddDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-adddisposableresource\nmodule.exports = function (disposable, V, hint, method) {\n var resource;\n if (arguments.length < 4) {\n // When `V`` is either `null` or `undefined` and hint is `async-dispose`,\n // we record that the resource was evaluated to ensure we will still perform an `Await` when resources are later disposed.\n if (isNullOrUndefined(V) && hint === 'sync-dispose') return;\n resource = createDisposableResource(V, hint);\n } else {\n resource = createDisposableResource(undefined, hint, method);\n }\n\n push(disposable.stack, resource);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/* global globalThis */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n // https://mathiasbynens.be/notes/globalthis\n (function () {\n if (typeof globalThis === 'object') return;\n Object.prototype.__defineGetter__('__magic__', function () {\n return this;\n });\n __magic__.globalThis = __magic__; // eslint-disable-line no-undef\n delete Object.prototype.__magic__;\n })();\n\n var $Handlebars = globalThis.Handlebars;\n\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (globalThis.Handlebars === Handlebars) {\n globalThis.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOzs7QUFHbEMsR0FBQyxZQUFXO0FBQ1YsUUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsT0FBTztBQUMzQyxVQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxZQUFXO0FBQ3hELGFBQU8sSUFBSSxDQUFDO0tBQ2IsQ0FBQyxDQUFDO0FBQ0gsYUFBUyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDakMsV0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztHQUNuQyxDQUFBLEVBQUcsQ0FBQzs7QUFFTCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDOzs7QUFHMUMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDeEMsZ0JBQVUsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQ3JDO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGdsb2JhbFRoaXMgKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKEhhbmRsZWJhcnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2dsb2JhbHRoaXNcbiAgKGZ1bmN0aW9uKCkge1xuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybjtcbiAgICBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oJ19fbWFnaWNfXycsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSk7XG4gICAgX19tYWdpY19fLmdsb2JhbFRoaXMgPSBfX21hZ2ljX187IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5fX21hZ2ljX187XG4gIH0pKCk7XG5cbiAgY29uc3QgJEhhbmRsZWJhcnMgPSBnbG9iYWxUaGlzLkhhbmRsZWJhcnM7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgSGFuZGxlYmFycy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuSGFuZGxlYmFycyA9PT0gSGFuZGxlYmFycykge1xuICAgICAgZ2xvYmFsVGhpcy5IYW5kbGViYXJzID0gJEhhbmRsZWJhcnM7XG4gICAgfVxuICAgIHJldHVybiBIYW5kbGViYXJzO1xuICB9O1xufVxuIl19\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar DatePrototype = Date.prototype;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar setFullYear = uncurryThis(DatePrototype.setFullYear);\n\n// `Date.prototype.setYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.setyear\n$({ target: 'Date', proto: true }, {\n setYear: function setYear(year) {\n // validate\n thisTimeValue(this);\n var yi = toIntegerOrInfinity(year);\n var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi;\n return setFullYear(this, yyyy);\n }\n});\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar iteratorClose = require('../internals/iterator-close');\n\nmodule.exports = function (iters, kind, value) {\n for (var i = iters.length - 1; i >= 0; i--) {\n if (iters[i] === undefined) continue;\n try {\n value = iteratorClose(iters[i].iterator, kind, value);\n } catch (error) {\n kind = 'throw';\n value = error;\n }\n }\n if (kind === 'throw') throw value;\n return value;\n};\n","'use strict';\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = require('create-hash');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = require('pbkdf2');\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n// };\n// });\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: null\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n if (data) return data[state.id];\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar aString = require('../internals/a-string');\nvar $fromHex = require('../internals/uint8-from-hex');\n\n// `Uint8Array.fromHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', stat: true }, {\n fromHex: function fromHex(string) {\n return $fromHex(aString(string)).bytes;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n aMap(this);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n // CanonicalizeKeyedCollectionKey\n if (key === 0 && 1 / key === -Infinity) key = 0;\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n // TODO: use `Object.create(null)` in `core-js@4`\n var result = {};\n var index = 0;\n for (; index < 64; index++) result[characters.charAt(index)] = index;\n return result;\n};\n\nmodule.exports = {\n i2c: base64Alphabet,\n c2i: inverse(base64Alphabet),\n i2cUrl: base64UrlAlphabet,\n c2iUrl: inverse(base64UrlAlphabet)\n};\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor($acosh(Number.MAX_VALUE)) !== 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || $acosh(Infinity) !== Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n var n = +x;\n return n < 1 ? NaN : n > 94906265.62425156\n ? log(n) + LN2\n : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));\n }\n});\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding, name) {\n\tif (\n\t\ttypeof thing === 'string'\n\t\t|| Buffer.isBuffer(thing)\n\t\t|| (useUint8Array && thing instanceof Uint8Array)\n\t\t|| (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError(name + ' must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Date.prototype.toGMTString` method\n// https://tc39.es/ecma262/#sec-date.prototype.togmtstring\n$({ target: 'Date', proto: true }, {\n toGMTString: Date.prototype.toUTCString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isFrozen: function isFrozen(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isFrozen ? $isFrozen(it) : false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n isExtensible: $isExtensible\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n bind: bind\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar padStart = require('../internals/string-pad').start;\nvar WHITESPACES = require('../internals/whitespaces');\n\nvar $Array = Array;\nvar $escape = RegExp.escape;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar FIRST_DIGIT_OR_ASCII = /^[0-9a-z]/i;\nvar SYNTAX_SOLIDUS = /^[$()*+./?[\\\\\\]^{|}]/;\nvar OTHER_PUNCTUATORS_AND_WHITESPACES = RegExp('^[!\"#%&\\',\\\\-:;<=>@`~' + WHITESPACES + ']');\nvar exec = uncurryThis(FIRST_DIGIT_OR_ASCII.exec);\n\nvar ControlEscape = {\n '\\u0009': 't',\n '\\u000A': 'n',\n '\\u000B': 'v',\n '\\u000C': 'f',\n '\\u000D': 'r'\n};\n\nvar escapeChar = function (chr) {\n var hex = numberToString(charCodeAt(chr, 0), 16);\n return hex.length < 3 ? '\\\\x' + padStart(hex, 2, '0') : '\\\\u' + padStart(hex, 4, '0');\n};\n\n// Avoiding the use of polyfills of the previous iteration of this proposal\nvar FORCED = !$escape || $escape('ab') !== '\\\\x61b';\n\n// `RegExp.escape` method\n// https://tc39.es/ecma262/#sec-regexp.escape\n$({ target: 'RegExp', stat: true, forced: FORCED }, {\n escape: function escape(S) {\n aString(S);\n var length = S.length;\n var result = $Array(length);\n\n for (var i = 0; i < length; i++) {\n var chr = charAt(S, i);\n if (i === 0 && exec(FIRST_DIGIT_OR_ASCII, chr)) {\n result[i] = escapeChar(chr);\n } else if (hasOwn(ControlEscape, chr)) {\n result[i] = '\\\\' + ControlEscape[chr];\n } else if (exec(SYNTAX_SOLIDUS, chr)) {\n result[i] = '\\\\' + chr;\n } else if (exec(OTHER_PUNCTUATORS_AND_WHITESPACES, chr)) {\n result[i] = escapeChar(chr);\n } else {\n var charCode = charCodeAt(chr, 0);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) result[i] = chr;\n // unpaired surrogate\n else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = escapeChar(chr);\n // surrogate pair\n else {\n result[i] = chr;\n result[++i] = charAt(S, i);\n }\n }\n }\n\n return join(result, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar setArrayLength = require('../internals/array-set-length');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n result = IS_CONSTRUCTOR ? new this() : [];\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n setArrayLength(result, index);\n return result;\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.from-code-point');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar TypeError = globalThis.TypeError;\nvar encodeURIComponent = globalThis.encodeURIComponent;\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar $parseInt = parseInt;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar plus = /\\+/g;\nvar FALLBACK_REPLACER = '\\uFFFD';\nvar VALID_HEX = /^[0-9a-f]+$/i;\n\nvar parseHexOctet = function (string, start) {\n var substr = stringSlice(string, start, start + 2);\n if (!exec(VALID_HEX, substr)) return NaN;\n\n return $parseInt(substr, 16);\n};\n\nvar getLeadingOnes = function (octet) {\n var count = 0;\n for (var mask = 0x80; mask > 0 && (octet & mask) !== 0; mask >>= 1) {\n count++;\n }\n return count;\n};\n\nvar utf8Decode = function (octets) {\n var codePoint = null;\n\n switch (octets.length) {\n case 1:\n codePoint = octets[0];\n break;\n case 2:\n codePoint = (octets[0] & 0x1F) << 6 | (octets[1] & 0x3F);\n break;\n case 3:\n codePoint = (octets[0] & 0x0F) << 12 | (octets[1] & 0x3F) << 6 | (octets[2] & 0x3F);\n break;\n case 4:\n codePoint = (octets[0] & 0x07) << 18 | (octets[1] & 0x3F) << 12 | (octets[2] & 0x3F) << 6 | (octets[3] & 0x3F);\n break;\n }\n\n return codePoint > 0x10FFFF ? null : codePoint;\n};\n\nvar decode = function (input) {\n input = replace(input, plus, ' ');\n var length = input.length;\n var result = '';\n var i = 0;\n\n while (i < length) {\n var decodedChar = charAt(input, i);\n\n if (decodedChar === '%') {\n if (charAt(input, i + 1) === '%' || i + 3 > length) {\n result += '%';\n i++;\n continue;\n }\n\n var octet = parseHexOctet(input, i + 1);\n\n // eslint-disable-next-line no-self-compare -- NaN check\n if (octet !== octet) {\n result += decodedChar;\n i++;\n continue;\n }\n\n i += 2;\n var byteSequenceLength = getLeadingOnes(octet);\n\n if (byteSequenceLength === 0) {\n decodedChar = fromCharCode(octet);\n } else {\n if (byteSequenceLength === 1 || byteSequenceLength > 4) {\n result += FALLBACK_REPLACER;\n i++;\n continue;\n }\n\n var octets = [octet];\n var sequenceIndex = 1;\n\n while (sequenceIndex < byteSequenceLength) {\n i++;\n if (i + 3 > length || charAt(input, i) !== '%') break;\n\n var nextByte = parseHexOctet(input, i + 1);\n\n // eslint-disable-next-line no-self-compare -- NaN check\n if (nextByte !== nextByte) {\n i += 3;\n break;\n }\n if (nextByte > 191 || nextByte < 128) break;\n\n push(octets, nextByte);\n i += 2;\n sequenceIndex++;\n }\n\n if (octets.length !== byteSequenceLength) {\n result += FALLBACK_REPLACER;\n continue;\n }\n\n var codePoint = utf8Decode(octets);\n if (codePoint === null) {\n result += FALLBACK_REPLACER;\n } else {\n decodedChar = fromCodePoint(codePoint);\n }\n }\n }\n\n result += decodedChar;\n i++;\n }\n\n return result;\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n target: getInternalParamsState(params).entries,\n index: 0,\n kind: kind\n });\n}, URL_SEARCH_PARAMS, function next() {\n var state = getInternalIteratorState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n var entry = target[index];\n switch (state.kind) {\n case 'keys': return createIterResultObject(entry.key, false);\n case 'values': return createIterResultObject(entry.value, false);\n } return createIterResultObject([entry.key, entry.value], false);\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var entries = this.entries;\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var entries = this.entries;\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(entries, {\n key: decode(shift(entry)),\n value: decode(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.size++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var n = +x;\n var a = expm1(n);\n var b = expm1(-n);\n return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n));\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","/*! jQuery UI - v1.13.3 - 2024-04-26\n* https://jqueryui.com\n* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js\n* Copyright OpenJS Foundation and other contributors; Licensed MIT */\n\n( function( factory ) {\n\t\"use strict\";\n\t\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\n$.ui = $.ui || {};\n\nvar version = $.ui.version = \"1.13.3\";\n\n\n/*!\n * jQuery UI Widget 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Widget\n//>>group: Core\n//>>description: Provides a factory for creating stateful widgets with a common API.\n//>>docs: https://api.jqueryui.com/jQuery.widget/\n//>>demos: https://jqueryui.com/widget/\n\n\nvar widgetUuid = 0;\nvar widgetHasOwnProperty = Array.prototype.hasOwnProperty;\nvar widgetSlice = Array.prototype.slice;\n\n$.cleanData = ( function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {\n\n\t\t\t// Only trigger remove when necessary to save time\n\t\t\tevents = $._data( elem, \"events\" );\n\t\t\tif ( events && events.remove ) {\n\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t}\n\t\t}\n\t\torig( elems );\n\t};\n} )( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar existingConstructor, constructor, basePrototype;\n\n\t// ProxiedPrototype allows the provided prototype to remain unmodified\n\t// so that it can be used as a mixin for multiple widgets (#8876)\n\tvar proxiedPrototype = {};\n\n\tvar namespace = name.split( \".\" )[ 0 ];\n\tname = name.split( \".\" )[ 1 ];\n\tvar fullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\tif ( Array.isArray( prototype ) ) {\n\t\tprototype = $.extend.apply( null, [ {} ].concat( prototype ) );\n\t}\n\n\t// Create selector for plugin\n\t$.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\n\t\t// Allow instantiation without \"new\" keyword\n\t\tif ( !this || !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// Allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\n\t// Extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\n\t\t// Copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\n\t\t// Track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t} );\n\n\tbasePrototype = new base();\n\n\t// We need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( typeof value !== \"function\" ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = ( function() {\n\t\t\tfunction _super() {\n\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t}\n\n\t\t\tfunction _superApply( args ) {\n\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t}\n\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super;\n\t\t\t\tvar __superApply = this._superApply;\n\t\t\t\tvar returnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t} )();\n\t} );\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t} );\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// Redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor,\n\t\t\t\tchild._proto );\n\t\t} );\n\n\t\t// Remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widgetSlice.call( arguments, 1 );\n\tvar inputIndex = 0;\n\tvar inputLength = input.length;\n\tvar key;\n\tvar value;\n\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) {\n\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\";\n\t\tvar args = widgetSlice.call( arguments, 1 );\n\t\tvar returnValue = this;\n\n\t\tif ( isMethodCall ) {\n\n\t\t\t// If this is an empty collection, we need to have the instance method\n\t\t\t// return undefined instead of the jQuery instance\n\t\t\tif ( !this.length && options === \"instance\" ) {\n\t\t\t\treturnValue = undefined;\n\t\t\t} else {\n\t\t\t\tthis.each( function() {\n\t\t\t\t\tvar methodValue;\n\t\t\t\t\tvar instance = $.data( this, fullName );\n\n\t\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\t\treturnValue = instance;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\treturn $.error( \"cannot call methods on \" + name +\n\t\t\t\t\t\t\t\" prior to initialization; \" +\n\t\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof instance[ options ] !== \"function\" ||\n\t\t\t\t\t\toptions.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name +\n\t\t\t\t\t\t\t\" widget instance\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\n\t\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\t\tmethodValue;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat( args ) );\n\t\t\t}\n\n\t\t\tthis.each( function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"
    \",\n\n\toptions: {\n\t\tclasses: {},\n\t\tdisabled: false,\n\n\t\t// Callbacks\n\t\tcreate: null\n\t},\n\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widgetUuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\t\tthis.classesElementLookup = {};\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.document = $( element.style ?\n\n\t\t\t\t// Element within the document\n\t\t\t\telement.ownerDocument :\n\n\t\t\t\t// Element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._setOptionDisabled( this.options.disabled );\n\t\t}\n\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\n\t_getCreateOptions: function() {\n\t\treturn {};\n\t},\n\n\t_getCreateEventData: $.noop,\n\n\t_create: $.noop,\n\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tvar that = this;\n\n\t\tthis._destroy();\n\t\t$.each( this.classesElementLookup, function( key, value ) {\n\t\t\tthat._removeClass( value, key );\n\t\t} );\n\n\t\t// We can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName );\n\t\tthis.widget()\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" );\n\n\t\t// Clean up events and states\n\t\tthis.bindings.off( this.eventNamespace );\n\t},\n\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key;\n\t\tvar parts;\n\t\tvar curOption;\n\t\tvar i;\n\n\t\tif ( arguments.length === 0 ) {\n\n\t\t\t// Don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\n\t\t\t// Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"classes\" ) {\n\t\t\tthis._setOptionClasses( value );\n\t\t}\n\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._setOptionDisabled( value );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOptionClasses: function( value ) {\n\t\tvar classKey, elements, currentElements;\n\n\t\tfor ( classKey in value ) {\n\t\t\tcurrentElements = this.classesElementLookup[ classKey ];\n\t\t\tif ( value[ classKey ] === this.options.classes[ classKey ] ||\n\t\t\t\t\t!currentElements ||\n\t\t\t\t\t!currentElements.length ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// We are doing this to create a new jQuery object because the _removeClass() call\n\t\t\t// on the next line is going to destroy the reference to the current elements being\n\t\t\t// tracked. We need to save a copy of this collection so that we can add the new classes\n\t\t\t// below.\n\t\t\telements = $( currentElements.get() );\n\t\t\tthis._removeClass( currentElements, classKey );\n\n\t\t\t// We don't use _addClass() here, because that uses this.options.classes\n\t\t\t// for generating the string of classes. We want to use the value passed in from\n\t\t\t// _setOption(), this is the new value of the classes option which was passed to\n\t\t\t// _setOption(). We pass this value directly to _classes().\n\t\t\telements.addClass( this._classes( {\n\t\t\t\telement: elements,\n\t\t\t\tkeys: classKey,\n\t\t\t\tclasses: value,\n\t\t\t\tadd: true\n\t\t\t} ) );\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._toggleClass( this.widget(), this.widgetFullName + \"-disabled\", null, !!value );\n\n\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\tif ( value ) {\n\t\t\tthis._removeClass( this.hoverable, null, \"ui-state-hover\" );\n\t\t\tthis._removeClass( this.focusable, null, \"ui-state-focus\" );\n\t\t}\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions( { disabled: false } );\n\t},\n\n\tdisable: function() {\n\t\treturn this._setOptions( { disabled: true } );\n\t},\n\n\t_classes: function( options ) {\n\t\tvar full = [];\n\t\tvar that = this;\n\n\t\toptions = $.extend( {\n\t\t\telement: this.element,\n\t\t\tclasses: this.options.classes || {}\n\t\t}, options );\n\n\t\tfunction bindRemoveEvent() {\n\t\t\tvar nodesToBind = [];\n\n\t\t\toptions.element.each( function( _, element ) {\n\t\t\t\tvar isTracked = $.map( that.classesElementLookup, function( elements ) {\n\t\t\t\t\treturn elements;\n\t\t\t\t} )\n\t\t\t\t\t.some( function( elements ) {\n\t\t\t\t\t\treturn elements.is( element );\n\t\t\t\t\t} );\n\n\t\t\t\tif ( !isTracked ) {\n\t\t\t\t\tnodesToBind.push( element );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthat._on( $( nodesToBind ), {\n\t\t\t\tremove: \"_untrackClassesElement\"\n\t\t\t} );\n\t\t}\n\n\t\tfunction processClassString( classes, checkOption ) {\n\t\t\tvar current, i;\n\t\t\tfor ( i = 0; i < classes.length; i++ ) {\n\t\t\t\tcurrent = that.classesElementLookup[ classes[ i ] ] || $();\n\t\t\t\tif ( options.add ) {\n\t\t\t\t\tbindRemoveEvent();\n\t\t\t\t\tcurrent = $( $.uniqueSort( current.get().concat( options.element.get() ) ) );\n\t\t\t\t} else {\n\t\t\t\t\tcurrent = $( current.not( options.element ).get() );\n\t\t\t\t}\n\t\t\t\tthat.classesElementLookup[ classes[ i ] ] = current;\n\t\t\t\tfull.push( classes[ i ] );\n\t\t\t\tif ( checkOption && options.classes[ classes[ i ] ] ) {\n\t\t\t\t\tfull.push( options.classes[ classes[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( options.keys ) {\n\t\t\tprocessClassString( options.keys.match( /\\S+/g ) || [], true );\n\t\t}\n\t\tif ( options.extra ) {\n\t\t\tprocessClassString( options.extra.match( /\\S+/g ) || [] );\n\t\t}\n\n\t\treturn full.join( \" \" );\n\t},\n\n\t_untrackClassesElement: function( event ) {\n\t\tvar that = this;\n\t\t$.each( that.classesElementLookup, function( key, value ) {\n\t\t\tif ( $.inArray( event.target, value ) !== -1 ) {\n\t\t\t\tthat.classesElementLookup[ key ] = $( value.not( event.target ).get() );\n\t\t\t}\n\t\t} );\n\n\t\tthis._off( $( event.target ) );\n\t},\n\n\t_removeClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, false );\n\t},\n\n\t_addClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, true );\n\t},\n\n\t_toggleClass: function( element, keys, extra, add ) {\n\t\tadd = ( typeof add === \"boolean\" ) ? add : extra;\n\t\tvar shift = ( typeof element === \"string\" || element === null ),\n\t\t\toptions = {\n\t\t\t\textra: shift ? keys : extra,\n\t\t\t\tkeys: shift ? element : keys,\n\t\t\t\telement: shift ? this.element : element,\n\t\t\t\tadd: add\n\t\t\t};\n\t\toptions.element.toggleClass( this._classes( options ), add );\n\t\treturn this;\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement;\n\t\tvar instance = this;\n\n\t\t// No suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// No element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\n\t\t\t\t// Allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// Copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ );\n\t\t\tvar eventName = match[ 1 ] + instance.eventNamespace;\n\t\t\tvar selector = match[ 2 ];\n\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.on( eventName, selector, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.on( eventName, handlerProxy );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = ( eventName || \"\" ).split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.off( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig;\n\t\tvar callback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\n\t\t// The original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// Copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( typeof callback === \"function\" &&\n\t\t\tcallback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\n\t\tvar hasOptions;\n\t\tvar effectName = !options ?\n\t\t\tmethod :\n\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\tdefaultEffect :\n\t\t\t\toptions.effect || defaultEffect;\n\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t} else if ( options === true ) {\n\t\t\toptions = {};\n\t\t}\n\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue( function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t} );\n\t\t}\n\t};\n} );\n\nvar widget = $.widget;\n\n\n/*!\n * jQuery UI Position 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n *\n * https://api.jqueryui.com/position/\n */\n\n//>>label: Position\n//>>group: Core\n//>>description: Positions elements relative to other elements.\n//>>docs: https://api.jqueryui.com/position/\n//>>demos: https://jqueryui.com/position/\n\n\n( function() {\nvar cachedScrollbarWidth,\n\tmax = Math.max,\n\tabs = Math.abs,\n\trhorizontal = /left|center|right/,\n\trvertical = /top|center|bottom/,\n\troffset = /[\\+\\-]\\d+(\\.[\\d]+)?%?/,\n\trposition = /^\\w+/,\n\trpercent = /%$/,\n\t_position = $.fn.position;\n\nfunction getOffsets( offsets, width, height ) {\n\treturn [\n\t\tparseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),\n\t\tparseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )\n\t];\n}\n\nfunction parseCss( element, property ) {\n\treturn parseInt( $.css( element, property ), 10 ) || 0;\n}\n\nfunction isWindow( obj ) {\n\treturn obj != null && obj === obj.window;\n}\n\nfunction getDimensions( elem ) {\n\tvar raw = elem[ 0 ];\n\tif ( raw.nodeType === 9 ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: 0, left: 0 }\n\t\t};\n\t}\n\tif ( isWindow( raw ) ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: elem.scrollTop(), left: elem.scrollLeft() }\n\t\t};\n\t}\n\tif ( raw.preventDefault ) {\n\t\treturn {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\toffset: { top: raw.pageY, left: raw.pageX }\n\t\t};\n\t}\n\treturn {\n\t\twidth: elem.outerWidth(),\n\t\theight: elem.outerHeight(),\n\t\toffset: elem.offset()\n\t};\n}\n\n$.position = {\n\tscrollbarWidth: function() {\n\t\tif ( cachedScrollbarWidth !== undefined ) {\n\t\t\treturn cachedScrollbarWidth;\n\t\t}\n\t\tvar w1, w2,\n\t\t\tdiv = $( \"
    \" +\n\t\t\t\t\"
    \" ),\n\t\t\tinnerDiv = div.children()[ 0 ];\n\n\t\t$( \"body\" ).append( div );\n\t\tw1 = innerDiv.offsetWidth;\n\t\tdiv.css( \"overflow\", \"scroll\" );\n\n\t\tw2 = innerDiv.offsetWidth;\n\n\t\tif ( w1 === w2 ) {\n\t\t\tw2 = div[ 0 ].clientWidth;\n\t\t}\n\n\t\tdiv.remove();\n\n\t\treturn ( cachedScrollbarWidth = w1 - w2 );\n\t},\n\tgetScrollInfo: function( within ) {\n\t\tvar overflowX = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-x\" ),\n\t\t\toverflowY = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-y\" ),\n\t\t\thasOverflowX = overflowX === \"scroll\" ||\n\t\t\t\t( overflowX === \"auto\" && within.width < within.element[ 0 ].scrollWidth ),\n\t\t\thasOverflowY = overflowY === \"scroll\" ||\n\t\t\t\t( overflowY === \"auto\" && within.height < within.element[ 0 ].scrollHeight );\n\t\treturn {\n\t\t\twidth: hasOverflowY ? $.position.scrollbarWidth() : 0,\n\t\t\theight: hasOverflowX ? $.position.scrollbarWidth() : 0\n\t\t};\n\t},\n\tgetWithinInfo: function( element ) {\n\t\tvar withinElement = $( element || window ),\n\t\t\tisElemWindow = isWindow( withinElement[ 0 ] ),\n\t\t\tisDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,\n\t\t\thasOffset = !isElemWindow && !isDocument;\n\t\treturn {\n\t\t\telement: withinElement,\n\t\t\tisWindow: isElemWindow,\n\t\t\tisDocument: isDocument,\n\t\t\toffset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },\n\t\t\tscrollLeft: withinElement.scrollLeft(),\n\t\t\tscrollTop: withinElement.scrollTop(),\n\t\t\twidth: withinElement.outerWidth(),\n\t\t\theight: withinElement.outerHeight()\n\t\t};\n\t}\n};\n\n$.fn.position = function( options ) {\n\tif ( !options || !options.of ) {\n\t\treturn _position.apply( this, arguments );\n\t}\n\n\t// Make a copy, we don't want to modify arguments\n\toptions = $.extend( {}, options );\n\n\tvar atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,\n\n\t\t// Make sure string options are treated as CSS selectors\n\t\ttarget = typeof options.of === \"string\" ?\n\t\t\t$( document ).find( options.of ) :\n\t\t\t$( options.of ),\n\n\t\twithin = $.position.getWithinInfo( options.within ),\n\t\tscrollInfo = $.position.getScrollInfo( within ),\n\t\tcollision = ( options.collision || \"flip\" ).split( \" \" ),\n\t\toffsets = {};\n\n\tdimensions = getDimensions( target );\n\tif ( target[ 0 ].preventDefault ) {\n\n\t\t// Force left top to allow flipping\n\t\toptions.at = \"left top\";\n\t}\n\ttargetWidth = dimensions.width;\n\ttargetHeight = dimensions.height;\n\ttargetOffset = dimensions.offset;\n\n\t// Clone to reuse original targetOffset later\n\tbasePosition = $.extend( {}, targetOffset );\n\n\t// Force my and at to have valid horizontal and vertical positions\n\t// if a value is missing or invalid, it will be converted to center\n\t$.each( [ \"my\", \"at\" ], function() {\n\t\tvar pos = ( options[ this ] || \"\" ).split( \" \" ),\n\t\t\thorizontalOffset,\n\t\t\tverticalOffset;\n\n\t\tif ( pos.length === 1 ) {\n\t\t\tpos = rhorizontal.test( pos[ 0 ] ) ?\n\t\t\t\tpos.concat( [ \"center\" ] ) :\n\t\t\t\trvertical.test( pos[ 0 ] ) ?\n\t\t\t\t\t[ \"center\" ].concat( pos ) :\n\t\t\t\t\t[ \"center\", \"center\" ];\n\t\t}\n\t\tpos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : \"center\";\n\t\tpos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : \"center\";\n\n\t\t// Calculate offsets\n\t\thorizontalOffset = roffset.exec( pos[ 0 ] );\n\t\tverticalOffset = roffset.exec( pos[ 1 ] );\n\t\toffsets[ this ] = [\n\t\t\thorizontalOffset ? horizontalOffset[ 0 ] : 0,\n\t\t\tverticalOffset ? verticalOffset[ 0 ] : 0\n\t\t];\n\n\t\t// Reduce to just the positions without the offsets\n\t\toptions[ this ] = [\n\t\t\trposition.exec( pos[ 0 ] )[ 0 ],\n\t\t\trposition.exec( pos[ 1 ] )[ 0 ]\n\t\t];\n\t} );\n\n\t// Normalize collision option\n\tif ( collision.length === 1 ) {\n\t\tcollision[ 1 ] = collision[ 0 ];\n\t}\n\n\tif ( options.at[ 0 ] === \"right\" ) {\n\t\tbasePosition.left += targetWidth;\n\t} else if ( options.at[ 0 ] === \"center\" ) {\n\t\tbasePosition.left += targetWidth / 2;\n\t}\n\n\tif ( options.at[ 1 ] === \"bottom\" ) {\n\t\tbasePosition.top += targetHeight;\n\t} else if ( options.at[ 1 ] === \"center\" ) {\n\t\tbasePosition.top += targetHeight / 2;\n\t}\n\n\tatOffset = getOffsets( offsets.at, targetWidth, targetHeight );\n\tbasePosition.left += atOffset[ 0 ];\n\tbasePosition.top += atOffset[ 1 ];\n\n\treturn this.each( function() {\n\t\tvar collisionPosition, using,\n\t\t\telem = $( this ),\n\t\t\telemWidth = elem.outerWidth(),\n\t\t\telemHeight = elem.outerHeight(),\n\t\t\tmarginLeft = parseCss( this, \"marginLeft\" ),\n\t\t\tmarginTop = parseCss( this, \"marginTop\" ),\n\t\t\tcollisionWidth = elemWidth + marginLeft + parseCss( this, \"marginRight\" ) +\n\t\t\t\tscrollInfo.width,\n\t\t\tcollisionHeight = elemHeight + marginTop + parseCss( this, \"marginBottom\" ) +\n\t\t\t\tscrollInfo.height,\n\t\t\tposition = $.extend( {}, basePosition ),\n\t\t\tmyOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );\n\n\t\tif ( options.my[ 0 ] === \"right\" ) {\n\t\t\tposition.left -= elemWidth;\n\t\t} else if ( options.my[ 0 ] === \"center\" ) {\n\t\t\tposition.left -= elemWidth / 2;\n\t\t}\n\n\t\tif ( options.my[ 1 ] === \"bottom\" ) {\n\t\t\tposition.top -= elemHeight;\n\t\t} else if ( options.my[ 1 ] === \"center\" ) {\n\t\t\tposition.top -= elemHeight / 2;\n\t\t}\n\n\t\tposition.left += myOffset[ 0 ];\n\t\tposition.top += myOffset[ 1 ];\n\n\t\tcollisionPosition = {\n\t\t\tmarginLeft: marginLeft,\n\t\t\tmarginTop: marginTop\n\t\t};\n\n\t\t$.each( [ \"left\", \"top\" ], function( i, dir ) {\n\t\t\tif ( $.ui.position[ collision[ i ] ] ) {\n\t\t\t\t$.ui.position[ collision[ i ] ][ dir ]( position, {\n\t\t\t\t\ttargetWidth: targetWidth,\n\t\t\t\t\ttargetHeight: targetHeight,\n\t\t\t\t\telemWidth: elemWidth,\n\t\t\t\t\telemHeight: elemHeight,\n\t\t\t\t\tcollisionPosition: collisionPosition,\n\t\t\t\t\tcollisionWidth: collisionWidth,\n\t\t\t\t\tcollisionHeight: collisionHeight,\n\t\t\t\t\toffset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],\n\t\t\t\t\tmy: options.my,\n\t\t\t\t\tat: options.at,\n\t\t\t\t\twithin: within,\n\t\t\t\t\telem: elem\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tif ( options.using ) {\n\n\t\t\t// Adds feedback as second argument to using callback, if present\n\t\t\tusing = function( props ) {\n\t\t\t\tvar left = targetOffset.left - position.left,\n\t\t\t\t\tright = left + targetWidth - elemWidth,\n\t\t\t\t\ttop = targetOffset.top - position.top,\n\t\t\t\t\tbottom = top + targetHeight - elemHeight,\n\t\t\t\t\tfeedback = {\n\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\telement: target,\n\t\t\t\t\t\t\tleft: targetOffset.left,\n\t\t\t\t\t\t\ttop: targetOffset.top,\n\t\t\t\t\t\t\twidth: targetWidth,\n\t\t\t\t\t\t\theight: targetHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\telement: {\n\t\t\t\t\t\t\telement: elem,\n\t\t\t\t\t\t\tleft: position.left,\n\t\t\t\t\t\t\ttop: position.top,\n\t\t\t\t\t\t\twidth: elemWidth,\n\t\t\t\t\t\t\theight: elemHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\thorizontal: right < 0 ? \"left\" : left > 0 ? \"right\" : \"center\",\n\t\t\t\t\t\tvertical: bottom < 0 ? \"top\" : top > 0 ? \"bottom\" : \"middle\"\n\t\t\t\t\t};\n\t\t\t\tif ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {\n\t\t\t\t\tfeedback.horizontal = \"center\";\n\t\t\t\t}\n\t\t\t\tif ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {\n\t\t\t\t\tfeedback.vertical = \"middle\";\n\t\t\t\t}\n\t\t\t\tif ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {\n\t\t\t\t\tfeedback.important = \"horizontal\";\n\t\t\t\t} else {\n\t\t\t\t\tfeedback.important = \"vertical\";\n\t\t\t\t}\n\t\t\t\toptions.using.call( this, props, feedback );\n\t\t\t};\n\t\t}\n\n\t\telem.offset( $.extend( position, { using: using } ) );\n\t} );\n};\n\n$.ui.position = {\n\tfit: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\touterWidth = within.width,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = withinOffset - collisionPosLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,\n\t\t\t\tnewOverRight;\n\n\t\t\t// Element is wider than within\n\t\t\tif ( data.collisionWidth > outerWidth ) {\n\n\t\t\t\t// Element is initially over the left side of within\n\t\t\t\tif ( overLeft > 0 && overRight <= 0 ) {\n\t\t\t\t\tnewOverRight = position.left + overLeft + data.collisionWidth - outerWidth -\n\t\t\t\t\t\twithinOffset;\n\t\t\t\t\tposition.left += overLeft - newOverRight;\n\n\t\t\t\t// Element is initially over right side of within\n\t\t\t\t} else if ( overRight > 0 && overLeft <= 0 ) {\n\t\t\t\t\tposition.left = withinOffset;\n\n\t\t\t\t// Element is initially over both left and right sides of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overLeft > overRight ) {\n\t\t\t\t\t\tposition.left = withinOffset + outerWidth - data.collisionWidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.left = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Too far left -> align with left edge\n\t\t\t} else if ( overLeft > 0 ) {\n\t\t\t\tposition.left += overLeft;\n\n\t\t\t// Too far right -> align with right edge\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tposition.left -= overRight;\n\n\t\t\t// Adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.left = max( position.left - collisionPosLeft, position.left );\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\touterHeight = data.within.height,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = withinOffset - collisionPosTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,\n\t\t\t\tnewOverBottom;\n\n\t\t\t// Element is taller than within\n\t\t\tif ( data.collisionHeight > outerHeight ) {\n\n\t\t\t\t// Element is initially over the top of within\n\t\t\t\tif ( overTop > 0 && overBottom <= 0 ) {\n\t\t\t\t\tnewOverBottom = position.top + overTop + data.collisionHeight - outerHeight -\n\t\t\t\t\t\twithinOffset;\n\t\t\t\t\tposition.top += overTop - newOverBottom;\n\n\t\t\t\t// Element is initially over bottom of within\n\t\t\t\t} else if ( overBottom > 0 && overTop <= 0 ) {\n\t\t\t\t\tposition.top = withinOffset;\n\n\t\t\t\t// Element is initially over both top and bottom of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overTop > overBottom ) {\n\t\t\t\t\t\tposition.top = withinOffset + outerHeight - data.collisionHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.top = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Too far up -> align with top\n\t\t\t} else if ( overTop > 0 ) {\n\t\t\t\tposition.top += overTop;\n\n\t\t\t// Too far down -> align with bottom edge\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tposition.top -= overBottom;\n\n\t\t\t// Adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.top = max( position.top - collisionPosTop, position.top );\n\t\t\t}\n\t\t}\n\t},\n\tflip: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.left + within.scrollLeft,\n\t\t\t\touterWidth = within.width,\n\t\t\t\toffsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = collisionPosLeft - offsetLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,\n\t\t\t\tmyOffset = data.my[ 0 ] === \"left\" ?\n\t\t\t\t\t-data.elemWidth :\n\t\t\t\t\tdata.my[ 0 ] === \"right\" ?\n\t\t\t\t\t\tdata.elemWidth :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 0 ] === \"left\" ?\n\t\t\t\t\tdata.targetWidth :\n\t\t\t\t\tdata.at[ 0 ] === \"right\" ?\n\t\t\t\t\t\t-data.targetWidth :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 0 ],\n\t\t\t\tnewOverRight,\n\t\t\t\tnewOverLeft;\n\n\t\t\tif ( overLeft < 0 ) {\n\t\t\t\tnewOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -\n\t\t\t\t\touterWidth - withinOffset;\n\t\t\t\tif ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tnewOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +\n\t\t\t\t\tatOffset + offset - offsetLeft;\n\t\t\t\tif ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.top + within.scrollTop,\n\t\t\t\touterHeight = within.height,\n\t\t\t\toffsetTop = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = collisionPosTop - offsetTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,\n\t\t\t\ttop = data.my[ 1 ] === \"top\",\n\t\t\t\tmyOffset = top ?\n\t\t\t\t\t-data.elemHeight :\n\t\t\t\t\tdata.my[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\tdata.elemHeight :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 1 ] === \"top\" ?\n\t\t\t\t\tdata.targetHeight :\n\t\t\t\t\tdata.at[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\t-data.targetHeight :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 1 ],\n\t\t\t\tnewOverTop,\n\t\t\t\tnewOverBottom;\n\t\t\tif ( overTop < 0 ) {\n\t\t\t\tnewOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -\n\t\t\t\t\touterHeight - withinOffset;\n\t\t\t\tif ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tnewOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +\n\t\t\t\t\toffset - offsetTop;\n\t\t\t\tif ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tflipfit: {\n\t\tleft: function() {\n\t\t\t$.ui.position.flip.left.apply( this, arguments );\n\t\t\t$.ui.position.fit.left.apply( this, arguments );\n\t\t},\n\t\ttop: function() {\n\t\t\t$.ui.position.flip.top.apply( this, arguments );\n\t\t\t$.ui.position.fit.top.apply( this, arguments );\n\t\t}\n\t}\n};\n\n} )();\n\nvar position = $.ui.position;\n\n\n/*!\n * jQuery UI :data 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: :data Selector\n//>>group: Core\n//>>description: Selects elements which have data stored under the specified key.\n//>>docs: https://api.jqueryui.com/data-selector/\n\n\nvar data = $.extend( $.expr.pseudos, {\n\tdata: $.expr.createPseudo ?\n\t\t$.expr.createPseudo( function( dataName ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn !!$.data( elem, dataName );\n\t\t\t};\n\t\t} ) :\n\n\t\t// Support: jQuery <1.8\n\t\tfunction( elem, i, match ) {\n\t\t\treturn !!$.data( elem, match[ 3 ] );\n\t\t}\n} );\n\n/*!\n * jQuery UI Disable Selection 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: disableSelection\n//>>group: Core\n//>>description: Disable selection of text content within the set of matched elements.\n//>>docs: https://api.jqueryui.com/disableSelection/\n\n// This file is deprecated\n\nvar disableSelection = $.fn.extend( {\n\tdisableSelection: ( function() {\n\t\tvar eventType = \"onselectstart\" in document.createElement( \"div\" ) ?\n\t\t\t\"selectstart\" :\n\t\t\t\"mousedown\";\n\n\t\treturn function() {\n\t\t\treturn this.on( eventType + \".ui-disableSelection\", function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tenableSelection: function() {\n\t\treturn this.off( \".ui-disableSelection\" );\n\t}\n} );\n\n\n\n// Create a local jQuery because jQuery Color relies on it and the\n// global may not exist with AMD and a custom build (#10199).\n// This module is a noop if used as a regular AMD module.\n// eslint-disable-next-line no-unused-vars\nvar jQuery = $;\n\n\n/*!\n * jQuery Color Animations v2.2.0\n * https://github.com/jquery/jquery-color\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n *\n * Date: Sun May 10 09:02:36 2020 +0200\n */\n\n\n\n\tvar stepHooks = \"backgroundColor borderBottomColor borderLeftColor borderRightColor \" +\n\t\t\"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",\n\n\tclass2type = {},\n\ttoString = class2type.toString,\n\n\t// plusequals test for += 100 -= 100\n\trplusequals = /^([\\-+])=\\s*(\\d+\\.?\\d*)/,\n\n\t// a set of RE's that can match strings and generate color tuples.\n\tstringParsers = [ {\n\t\t\tre: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ],\n\t\t\t\t\texecResult[ 3 ],\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ] * 2.55,\n\t\t\t\t\texecResult[ 2 ] * 2.55,\n\t\t\t\t\texecResult[ 3 ] * 2.55,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ], 16 ),\n\t\t\t\t\texecResult[ 4 ] ?\n\t\t\t\t\t\t( parseInt( execResult[ 4 ], 16 ) / 255 ).toFixed( 2 ) :\n\t\t\t\t\t\t1\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ] + execResult[ 3 ], 16 ),\n\t\t\t\t\texecResult[ 4 ] ?\n\t\t\t\t\t\t( parseInt( execResult[ 4 ] + execResult[ 4 ], 16 ) / 255 )\n\t\t\t\t\t\t\t.toFixed( 2 ) :\n\t\t\t\t\t\t1\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tspace: \"hsla\",\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ] / 100,\n\t\t\t\t\texecResult[ 3 ] / 100,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t} ],\n\n\t// jQuery.Color( )\n\tcolor = jQuery.Color = function( color, green, blue, alpha ) {\n\t\treturn new jQuery.Color.fn.parse( color, green, blue, alpha );\n\t},\n\tspaces = {\n\t\trgba: {\n\t\t\tprops: {\n\t\t\t\tred: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tgreen: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tblue: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thsla: {\n\t\t\tprops: {\n\t\t\t\thue: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"degrees\"\n\t\t\t\t},\n\t\t\t\tsaturation: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t},\n\t\t\t\tlightness: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tpropTypes = {\n\t\t\"byte\": {\n\t\t\tfloor: true,\n\t\t\tmax: 255\n\t\t},\n\t\t\"percent\": {\n\t\t\tmax: 1\n\t\t},\n\t\t\"degrees\": {\n\t\t\tmod: 360,\n\t\t\tfloor: true\n\t\t}\n\t},\n\tsupport = color.support = {},\n\n\t// element for support tests\n\tsupportElem = jQuery( \"

    \" )[ 0 ],\n\n\t// colors = jQuery.Color.names\n\tcolors,\n\n\t// local aliases of functions called often\n\teach = jQuery.each;\n\n// determine rgba support immediately\nsupportElem.style.cssText = \"background-color:rgba(1,1,1,.5)\";\nsupport.rgba = supportElem.style.backgroundColor.indexOf( \"rgba\" ) > -1;\n\n// define cache name and alpha properties\n// for rgba and hsla spaces\neach( spaces, function( spaceName, space ) {\n\tspace.cache = \"_\" + spaceName;\n\tspace.props.alpha = {\n\t\tidx: 3,\n\t\ttype: \"percent\",\n\t\tdef: 1\n\t};\n} );\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction getType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\treturn typeof obj === \"object\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n\nfunction clamp( value, prop, allowEmpty ) {\n\tvar type = propTypes[ prop.type ] || {};\n\n\tif ( value == null ) {\n\t\treturn ( allowEmpty || !prop.def ) ? null : prop.def;\n\t}\n\n\t// ~~ is an short way of doing floor for positive numbers\n\tvalue = type.floor ? ~~value : parseFloat( value );\n\n\t// IE will pass in empty strings as value for alpha,\n\t// which will hit this case\n\tif ( isNaN( value ) ) {\n\t\treturn prop.def;\n\t}\n\n\tif ( type.mod ) {\n\n\t\t// we add mod before modding to make sure that negatives values\n\t\t// get converted properly: -10 -> 350\n\t\treturn ( value + type.mod ) % type.mod;\n\t}\n\n\t// for now all property types without mod have min and max\n\treturn Math.min( type.max, Math.max( 0, value ) );\n}\n\nfunction stringParse( string ) {\n\tvar inst = color(),\n\t\trgba = inst._rgba = [];\n\n\tstring = string.toLowerCase();\n\n\teach( stringParsers, function( _i, parser ) {\n\t\tvar parsed,\n\t\t\tmatch = parser.re.exec( string ),\n\t\t\tvalues = match && parser.parse( match ),\n\t\t\tspaceName = parser.space || \"rgba\";\n\n\t\tif ( values ) {\n\t\t\tparsed = inst[ spaceName ]( values );\n\n\t\t\t// if this was an rgba parse the assignment might happen twice\n\t\t\t// oh well....\n\t\t\tinst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];\n\t\t\trgba = inst._rgba = parsed._rgba;\n\n\t\t\t// exit each( stringParsers ) here because we matched\n\t\t\treturn false;\n\t\t}\n\t} );\n\n\t// Found a stringParser that handled it\n\tif ( rgba.length ) {\n\n\t\t// if this came from a parsed string, force \"transparent\" when alpha is 0\n\t\t// chrome, (and maybe others) return \"transparent\" as rgba(0,0,0,0)\n\t\tif ( rgba.join() === \"0,0,0,0\" ) {\n\t\t\tjQuery.extend( rgba, colors.transparent );\n\t\t}\n\t\treturn inst;\n\t}\n\n\t// named colors\n\treturn colors[ string ];\n}\n\ncolor.fn = jQuery.extend( color.prototype, {\n\tparse: function( red, green, blue, alpha ) {\n\t\tif ( red === undefined ) {\n\t\t\tthis._rgba = [ null, null, null, null ];\n\t\t\treturn this;\n\t\t}\n\t\tif ( red.jquery || red.nodeType ) {\n\t\t\tred = jQuery( red ).css( green );\n\t\t\tgreen = undefined;\n\t\t}\n\n\t\tvar inst = this,\n\t\t\ttype = getType( red ),\n\t\t\trgba = this._rgba = [];\n\n\t\t// more than 1 argument specified - assume ( red, green, blue, alpha )\n\t\tif ( green !== undefined ) {\n\t\t\tred = [ red, green, blue, alpha ];\n\t\t\ttype = \"array\";\n\t\t}\n\n\t\tif ( type === \"string\" ) {\n\t\t\treturn this.parse( stringParse( red ) || colors._default );\n\t\t}\n\n\t\tif ( type === \"array\" ) {\n\t\t\teach( spaces.rgba.props, function( _key, prop ) {\n\t\t\t\trgba[ prop.idx ] = clamp( red[ prop.idx ], prop );\n\t\t\t} );\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( type === \"object\" ) {\n\t\t\tif ( red instanceof color ) {\n\t\t\t\teach( spaces, function( _spaceName, space ) {\n\t\t\t\t\tif ( red[ space.cache ] ) {\n\t\t\t\t\t\tinst[ space.cache ] = red[ space.cache ].slice();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teach( spaces, function( _spaceName, space ) {\n\t\t\t\t\tvar cache = space.cache;\n\t\t\t\t\teach( space.props, function( key, prop ) {\n\n\t\t\t\t\t\t// if the cache doesn't exist, and we know how to convert\n\t\t\t\t\t\tif ( !inst[ cache ] && space.to ) {\n\n\t\t\t\t\t\t\t// if the value was null, we don't need to copy it\n\t\t\t\t\t\t\t// if the key was alpha, we don't need to copy it either\n\t\t\t\t\t\t\tif ( key === \"alpha\" || red[ key ] == null ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst[ cache ] = space.to( inst._rgba );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// this is the only case where we allow nulls for ALL properties.\n\t\t\t\t\t\t// call clamp with alwaysAllowEmpty\n\t\t\t\t\t\tinst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// everything defined but alpha?\n\t\t\t\t\tif ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {\n\n\t\t\t\t\t\t// use the default of 1\n\t\t\t\t\t\tif ( inst[ cache ][ 3 ] == null ) {\n\t\t\t\t\t\t\tinst[ cache ][ 3 ] = 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( space.from ) {\n\t\t\t\t\t\t\tinst._rgba = space.from( inst[ cache ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t},\n\tis: function( compare ) {\n\t\tvar is = color( compare ),\n\t\t\tsame = true,\n\t\t\tinst = this;\n\n\t\teach( spaces, function( _, space ) {\n\t\t\tvar localCache,\n\t\t\t\tisCache = is[ space.cache ];\n\t\t\tif ( isCache ) {\n\t\t\t\tlocalCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];\n\t\t\t\teach( space.props, function( _, prop ) {\n\t\t\t\t\tif ( isCache[ prop.idx ] != null ) {\n\t\t\t\t\t\tsame = ( isCache[ prop.idx ] === localCache[ prop.idx ] );\n\t\t\t\t\t\treturn same;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn same;\n\t\t} );\n\t\treturn same;\n\t},\n\t_space: function() {\n\t\tvar used = [],\n\t\t\tinst = this;\n\t\teach( spaces, function( spaceName, space ) {\n\t\t\tif ( inst[ space.cache ] ) {\n\t\t\t\tused.push( spaceName );\n\t\t\t}\n\t\t} );\n\t\treturn used.pop();\n\t},\n\ttransition: function( other, distance ) {\n\t\tvar end = color( other ),\n\t\t\tspaceName = end._space(),\n\t\t\tspace = spaces[ spaceName ],\n\t\t\tstartColor = this.alpha() === 0 ? color( \"transparent\" ) : this,\n\t\t\tstart = startColor[ space.cache ] || space.to( startColor._rgba ),\n\t\t\tresult = start.slice();\n\n\t\tend = end[ space.cache ];\n\t\teach( space.props, function( _key, prop ) {\n\t\t\tvar index = prop.idx,\n\t\t\t\tstartValue = start[ index ],\n\t\t\t\tendValue = end[ index ],\n\t\t\t\ttype = propTypes[ prop.type ] || {};\n\n\t\t\t// if null, don't override start value\n\t\t\tif ( endValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// if null - use end\n\t\t\tif ( startValue === null ) {\n\t\t\t\tresult[ index ] = endValue;\n\t\t\t} else {\n\t\t\t\tif ( type.mod ) {\n\t\t\t\t\tif ( endValue - startValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue += type.mod;\n\t\t\t\t\t} else if ( startValue - endValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue -= type.mod;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );\n\t\t\t}\n\t\t} );\n\t\treturn this[ spaceName ]( result );\n\t},\n\tblend: function( opaque ) {\n\n\t\t// if we are already opaque - return ourself\n\t\tif ( this._rgba[ 3 ] === 1 ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tvar rgb = this._rgba.slice(),\n\t\t\ta = rgb.pop(),\n\t\t\tblend = color( opaque )._rgba;\n\n\t\treturn color( jQuery.map( rgb, function( v, i ) {\n\t\t\treturn ( 1 - a ) * blend[ i ] + a * v;\n\t\t} ) );\n\t},\n\ttoRgbaString: function() {\n\t\tvar prefix = \"rgba(\",\n\t\t\trgba = jQuery.map( this._rgba, function( v, i ) {\n\t\t\t\tif ( v != null ) {\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\treturn i > 2 ? 1 : 0;\n\t\t\t} );\n\n\t\tif ( rgba[ 3 ] === 1 ) {\n\t\t\trgba.pop();\n\t\t\tprefix = \"rgb(\";\n\t\t}\n\n\t\treturn prefix + rgba.join() + \")\";\n\t},\n\ttoHslaString: function() {\n\t\tvar prefix = \"hsla(\",\n\t\t\thsla = jQuery.map( this.hsla(), function( v, i ) {\n\t\t\t\tif ( v == null ) {\n\t\t\t\t\tv = i > 2 ? 1 : 0;\n\t\t\t\t}\n\n\t\t\t\t// catch 1 and 2\n\t\t\t\tif ( i && i < 3 ) {\n\t\t\t\t\tv = Math.round( v * 100 ) + \"%\";\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t} );\n\n\t\tif ( hsla[ 3 ] === 1 ) {\n\t\t\thsla.pop();\n\t\t\tprefix = \"hsl(\";\n\t\t}\n\t\treturn prefix + hsla.join() + \")\";\n\t},\n\ttoHexString: function( includeAlpha ) {\n\t\tvar rgba = this._rgba.slice(),\n\t\t\talpha = rgba.pop();\n\n\t\tif ( includeAlpha ) {\n\t\t\trgba.push( ~~( alpha * 255 ) );\n\t\t}\n\n\t\treturn \"#\" + jQuery.map( rgba, function( v ) {\n\n\t\t\t// default to 0 when nulls exist\n\t\t\tv = ( v || 0 ).toString( 16 );\n\t\t\treturn v.length === 1 ? \"0\" + v : v;\n\t\t} ).join( \"\" );\n\t},\n\ttoString: function() {\n\t\treturn this._rgba[ 3 ] === 0 ? \"transparent\" : this.toRgbaString();\n\t}\n} );\ncolor.fn.parse.prototype = color.fn;\n\n// hsla conversions adapted from:\n// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021\n\nfunction hue2rgb( p, q, h ) {\n\th = ( h + 1 ) % 1;\n\tif ( h * 6 < 1 ) {\n\t\treturn p + ( q - p ) * h * 6;\n\t}\n\tif ( h * 2 < 1 ) {\n\t\treturn q;\n\t}\n\tif ( h * 3 < 2 ) {\n\t\treturn p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;\n\t}\n\treturn p;\n}\n\nspaces.hsla.to = function( rgba ) {\n\tif ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {\n\t\treturn [ null, null, null, rgba[ 3 ] ];\n\t}\n\tvar r = rgba[ 0 ] / 255,\n\t\tg = rgba[ 1 ] / 255,\n\t\tb = rgba[ 2 ] / 255,\n\t\ta = rgba[ 3 ],\n\t\tmax = Math.max( r, g, b ),\n\t\tmin = Math.min( r, g, b ),\n\t\tdiff = max - min,\n\t\tadd = max + min,\n\t\tl = add * 0.5,\n\t\th, s;\n\n\tif ( min === max ) {\n\t\th = 0;\n\t} else if ( r === max ) {\n\t\th = ( 60 * ( g - b ) / diff ) + 360;\n\t} else if ( g === max ) {\n\t\th = ( 60 * ( b - r ) / diff ) + 120;\n\t} else {\n\t\th = ( 60 * ( r - g ) / diff ) + 240;\n\t}\n\n\t// chroma (diff) == 0 means greyscale which, by definition, saturation = 0%\n\t// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)\n\tif ( diff === 0 ) {\n\t\ts = 0;\n\t} else if ( l <= 0.5 ) {\n\t\ts = diff / add;\n\t} else {\n\t\ts = diff / ( 2 - add );\n\t}\n\treturn [ Math.round( h ) % 360, s, l, a == null ? 1 : a ];\n};\n\nspaces.hsla.from = function( hsla ) {\n\tif ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {\n\t\treturn [ null, null, null, hsla[ 3 ] ];\n\t}\n\tvar h = hsla[ 0 ] / 360,\n\t\ts = hsla[ 1 ],\n\t\tl = hsla[ 2 ],\n\t\ta = hsla[ 3 ],\n\t\tq = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,\n\t\tp = 2 * l - q;\n\n\treturn [\n\t\tMath.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),\n\t\ta\n\t];\n};\n\n\neach( spaces, function( spaceName, space ) {\n\tvar props = space.props,\n\t\tcache = space.cache,\n\t\tto = space.to,\n\t\tfrom = space.from;\n\n\t// makes rgba() and hsla()\n\tcolor.fn[ spaceName ] = function( value ) {\n\n\t\t// generate a cache for this space if it doesn't exist\n\t\tif ( to && !this[ cache ] ) {\n\t\t\tthis[ cache ] = to( this._rgba );\n\t\t}\n\t\tif ( value === undefined ) {\n\t\t\treturn this[ cache ].slice();\n\t\t}\n\n\t\tvar ret,\n\t\t\ttype = getType( value ),\n\t\t\tarr = ( type === \"array\" || type === \"object\" ) ? value : arguments,\n\t\t\tlocal = this[ cache ].slice();\n\n\t\teach( props, function( key, prop ) {\n\t\t\tvar val = arr[ type === \"object\" ? key : prop.idx ];\n\t\t\tif ( val == null ) {\n\t\t\t\tval = local[ prop.idx ];\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = clamp( val, prop );\n\t\t} );\n\n\t\tif ( from ) {\n\t\t\tret = color( from( local ) );\n\t\t\tret[ cache ] = local;\n\t\t\treturn ret;\n\t\t} else {\n\t\t\treturn color( local );\n\t\t}\n\t};\n\n\t// makes red() green() blue() alpha() hue() saturation() lightness()\n\teach( props, function( key, prop ) {\n\n\t\t// alpha is included in more than one space\n\t\tif ( color.fn[ key ] ) {\n\t\t\treturn;\n\t\t}\n\t\tcolor.fn[ key ] = function( value ) {\n\t\t\tvar local, cur, match, fn,\n\t\t\t\tvtype = getType( value );\n\n\t\t\tif ( key === \"alpha\" ) {\n\t\t\t\tfn = this._hsla ? \"hsla\" : \"rgba\";\n\t\t\t} else {\n\t\t\t\tfn = spaceName;\n\t\t\t}\n\t\t\tlocal = this[ fn ]();\n\t\t\tcur = local[ prop.idx ];\n\n\t\t\tif ( vtype === \"undefined\" ) {\n\t\t\t\treturn cur;\n\t\t\t}\n\n\t\t\tif ( vtype === \"function\" ) {\n\t\t\t\tvalue = value.call( this, cur );\n\t\t\t\tvtype = getType( value );\n\t\t\t}\n\t\t\tif ( value == null && prop.empty ) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( vtype === \"string\" ) {\n\t\t\t\tmatch = rplusequals.exec( value );\n\t\t\t\tif ( match ) {\n\t\t\t\t\tvalue = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === \"+\" ? 1 : -1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = value;\n\t\t\treturn this[ fn ]( local );\n\t\t};\n\t} );\n} );\n\n// add cssHook and .fx.step function for each named hook.\n// accept a space separated string of properties\ncolor.hook = function( hook ) {\n\tvar hooks = hook.split( \" \" );\n\teach( hooks, function( _i, hook ) {\n\t\tjQuery.cssHooks[ hook ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar parsed, curElem,\n\t\t\t\t\tbackgroundColor = \"\";\n\n\t\t\t\tif ( value !== \"transparent\" && ( getType( value ) !== \"string\" || ( parsed = stringParse( value ) ) ) ) {\n\t\t\t\t\tvalue = color( parsed || value );\n\t\t\t\t\tif ( !support.rgba && value._rgba[ 3 ] !== 1 ) {\n\t\t\t\t\t\tcurElem = hook === \"backgroundColor\" ? elem.parentNode : elem;\n\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t( backgroundColor === \"\" || backgroundColor === \"transparent\" ) &&\n\t\t\t\t\t\t\tcurElem && curElem.style\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tbackgroundColor = jQuery.css( curElem, \"backgroundColor\" );\n\t\t\t\t\t\t\t\tcurElem = curElem.parentNode;\n\t\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalue = value.blend( backgroundColor && backgroundColor !== \"transparent\" ?\n\t\t\t\t\t\t\tbackgroundColor :\n\t\t\t\t\t\t\t\"_default\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = value.toRgbaString();\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\telem.style[ hook ] = value;\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// wrapped to prevent IE from throwing errors on \"invalid\" values like 'auto' or 'inherit'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tjQuery.fx.step[ hook ] = function( fx ) {\n\t\t\tif ( !fx.colorInit ) {\n\t\t\t\tfx.start = color( fx.elem, hook );\n\t\t\t\tfx.end = color( fx.end );\n\t\t\t\tfx.colorInit = true;\n\t\t\t}\n\t\t\tjQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );\n\t\t};\n\t} );\n\n};\n\ncolor.hook( stepHooks );\n\njQuery.cssHooks.borderColor = {\n\texpand: function( value ) {\n\t\tvar expanded = {};\n\n\t\teach( [ \"Top\", \"Right\", \"Bottom\", \"Left\" ], function( _i, part ) {\n\t\t\texpanded[ \"border\" + part + \"Color\" ] = value;\n\t\t} );\n\t\treturn expanded;\n\t}\n};\n\n// Basic color names only.\n// Usage of any of the other color names requires adding yourself or including\n// jquery.color.svg-names.js.\ncolors = jQuery.Color.names = {\n\n\t// 4.1. Basic color keywords\n\taqua: \"#00ffff\",\n\tblack: \"#000000\",\n\tblue: \"#0000ff\",\n\tfuchsia: \"#ff00ff\",\n\tgray: \"#808080\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tolive: \"#808000\",\n\tpurple: \"#800080\",\n\tred: \"#ff0000\",\n\tsilver: \"#c0c0c0\",\n\tteal: \"#008080\",\n\twhite: \"#ffffff\",\n\tyellow: \"#ffff00\",\n\n\t// 4.2.3. \"transparent\" color keyword\n\ttransparent: [ null, null, null, 0 ],\n\n\t_default: \"#ffffff\"\n};\n\n\n/*!\n * jQuery UI Effects 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Effects Core\n//>>group: Effects\n/* eslint-disable max-len */\n//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.\n/* eslint-enable max-len */\n//>>docs: https://api.jqueryui.com/category/effects-core/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar dataSpace = \"ui-effects-\",\n\tdataSpaceStyle = \"ui-effects-style\",\n\tdataSpaceAnimated = \"ui-effects-animated\";\n\n$.effects = {\n\teffect: {}\n};\n\n/******************************************************************************/\n/****************************** CLASS ANIMATIONS ******************************/\n/******************************************************************************/\n( function() {\n\nvar classAnimationActions = [ \"add\", \"remove\", \"toggle\" ],\n\tshorthandStyles = {\n\t\tborder: 1,\n\t\tborderBottom: 1,\n\t\tborderColor: 1,\n\t\tborderLeft: 1,\n\t\tborderRight: 1,\n\t\tborderTop: 1,\n\t\tborderWidth: 1,\n\t\tmargin: 1,\n\t\tpadding: 1\n\t};\n\n$.each(\n\t[ \"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\" ],\n\tfunction( _, prop ) {\n\t\t$.fx.step[ prop ] = function( fx ) {\n\t\t\tif ( fx.end !== \"none\" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {\n\t\t\t\tjQuery.style( fx.elem, prop, fx.end );\n\t\t\t\tfx.setAttr = true;\n\t\t\t}\n\t\t};\n\t}\n);\n\nfunction camelCase( string ) {\n\treturn string.replace( /-([\\da-z])/gi, function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t} );\n}\n\nfunction getElementStyles( elem ) {\n\tvar key, len,\n\t\tstyle = elem.ownerDocument.defaultView ?\n\t\t\telem.ownerDocument.defaultView.getComputedStyle( elem, null ) :\n\t\t\telem.currentStyle,\n\t\tstyles = {};\n\n\tif ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {\n\t\tlen = style.length;\n\t\twhile ( len-- ) {\n\t\t\tkey = style[ len ];\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ camelCase( key ) ] = style[ key ];\n\t\t\t}\n\t\t}\n\n\t// Support: Opera, IE <9\n\t} else {\n\t\tfor ( key in style ) {\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ key ] = style[ key ];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn styles;\n}\n\nfunction styleDifference( oldStyle, newStyle ) {\n\tvar diff = {},\n\t\tname, value;\n\n\tfor ( name in newStyle ) {\n\t\tvalue = newStyle[ name ];\n\t\tif ( oldStyle[ name ] !== value ) {\n\t\t\tif ( !shorthandStyles[ name ] ) {\n\t\t\t\tif ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {\n\t\t\t\t\tdiff[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n// Support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n$.effects.animateClass = function( value, duration, easing, callback ) {\n\tvar o = $.speed( duration, easing, callback );\n\n\treturn this.queue( function() {\n\t\tvar animated = $( this ),\n\t\t\tbaseClass = animated.attr( \"class\" ) || \"\",\n\t\t\tapplyClassChange,\n\t\t\tallAnimations = o.children ? animated.find( \"*\" ).addBack() : animated;\n\n\t\t// Map the animated objects to store the original styles.\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar el = $( this );\n\t\t\treturn {\n\t\t\t\tel: el,\n\t\t\t\tstart: getElementStyles( this )\n\t\t\t};\n\t\t} );\n\n\t\t// Apply class change\n\t\tapplyClassChange = function() {\n\t\t\t$.each( classAnimationActions, function( i, action ) {\n\t\t\t\tif ( value[ action ] ) {\n\t\t\t\t\tanimated[ action + \"Class\" ]( value[ action ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t\tapplyClassChange();\n\n\t\t// Map all animated objects again - calculate new styles and diff\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tthis.end = getElementStyles( this.el[ 0 ] );\n\t\t\tthis.diff = styleDifference( this.start, this.end );\n\t\t\treturn this;\n\t\t} );\n\n\t\t// Apply original class\n\t\tanimated.attr( \"class\", baseClass );\n\n\t\t// Map all animated objects again - this time collecting a promise\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar styleInfo = this,\n\t\t\t\tdfd = $.Deferred(),\n\t\t\t\topts = $.extend( {}, o, {\n\t\t\t\t\tqueue: false,\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tdfd.resolve( styleInfo );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\tthis.el.animate( this.diff, opts );\n\t\t\treturn dfd.promise();\n\t\t} );\n\n\t\t// Once all animations have completed:\n\t\t$.when.apply( $, allAnimations.get() ).done( function() {\n\n\t\t\t// Set the final class\n\t\t\tapplyClassChange();\n\n\t\t\t// For each animated element,\n\t\t\t// clear all css properties that were animated\n\t\t\t$.each( arguments, function() {\n\t\t\t\tvar el = this.el;\n\t\t\t\t$.each( this.diff, function( key ) {\n\t\t\t\t\tel.css( key, \"\" );\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// This is guarnteed to be there if you use jQuery.speed()\n\t\t\t// it also handles dequeuing the next anim...\n\t\t\to.complete.call( animated[ 0 ] );\n\t\t} );\n\t} );\n};\n\n$.fn.extend( {\n\taddClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn speed ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ add: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.addClass ),\n\n\tremoveClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn arguments.length > 1 ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ remove: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.removeClass ),\n\n\ttoggleClass: ( function( orig ) {\n\t\treturn function( classNames, force, speed, easing, callback ) {\n\t\t\tif ( typeof force === \"boolean\" || force === undefined ) {\n\t\t\t\tif ( !speed ) {\n\n\t\t\t\t\t// Without speed parameter\n\t\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t\t} else {\n\t\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t\t( force ? { add: classNames } : { remove: classNames } ),\n\t\t\t\t\t\tspeed, easing, callback );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Without force parameter\n\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t{ toggle: classNames }, force, speed, easing );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggleClass ),\n\n\tswitchClass: function( remove, add, speed, easing, callback ) {\n\t\treturn $.effects.animateClass.call( this, {\n\t\t\tadd: add,\n\t\t\tremove: remove\n\t\t}, speed, easing, callback );\n\t}\n} );\n\n} )();\n\n/******************************************************************************/\n/*********************************** EFFECTS **********************************/\n/******************************************************************************/\n\n( function() {\n\nif ( $.expr && $.expr.pseudos && $.expr.pseudos.animated ) {\n\t$.expr.pseudos.animated = ( function( orig ) {\n\t\treturn function( elem ) {\n\t\t\treturn !!$( elem ).data( dataSpaceAnimated ) || orig( elem );\n\t\t};\n\t} )( $.expr.pseudos.animated );\n}\n\nif ( $.uiBackCompat !== false ) {\n\t$.extend( $.effects, {\n\n\t\t// Saves a set of properties in a data storage\n\t\tsave: function( element, set ) {\n\t\t\tvar i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\telement.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Restores a set of previously saved properties from a data storage\n\t\trestore: function( element, set ) {\n\t\t\tvar val, i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\tval = element.data( dataSpace + set[ i ] );\n\t\t\t\t\telement.css( set[ i ], val );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tsetMode: function( el, mode ) {\n\t\t\tif ( mode === \"toggle\" ) {\n\t\t\t\tmode = el.is( \":hidden\" ) ? \"show\" : \"hide\";\n\t\t\t}\n\t\t\treturn mode;\n\t\t},\n\n\t\t// Wraps the element around a wrapper that copies position properties\n\t\tcreateWrapper: function( element ) {\n\n\t\t\t// If the element is already wrapped, return it\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\treturn element.parent();\n\t\t\t}\n\n\t\t\t// Wrap the element\n\t\t\tvar props = {\n\t\t\t\t\twidth: element.outerWidth( true ),\n\t\t\t\t\theight: element.outerHeight( true ),\n\t\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t\t},\n\t\t\t\twrapper = $( \"

    \" )\n\t\t\t\t\t.addClass( \"ui-effects-wrapper\" )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tfontSize: \"100%\",\n\t\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\tpadding: 0\n\t\t\t\t\t} ),\n\n\t\t\t\t// Store the size in case width/height are defined in % - Fixes #5245\n\t\t\t\tsize = {\n\t\t\t\t\twidth: element.width(),\n\t\t\t\t\theight: element.height()\n\t\t\t\t},\n\t\t\t\tactive = document.activeElement;\n\n\t\t\t// Support: Firefox\n\t\t\t// Firefox incorrectly exposes anonymous content\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tactive.id;\n\t\t\t} catch ( e ) {\n\t\t\t\tactive = document.body;\n\t\t\t}\n\n\t\t\telement.wrap( wrapper );\n\n\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t}\n\n\t\t\t// Hotfix for jQuery 1.4 since some change in wrap() seems to actually\n\t\t\t// lose the reference to the wrapped element\n\t\t\twrapper = element.parent();\n\n\t\t\t// Transfer positioning properties to the wrapper\n\t\t\tif ( element.css( \"position\" ) === \"static\" ) {\n\t\t\t\twrapper.css( { position: \"relative\" } );\n\t\t\t\telement.css( { position: \"relative\" } );\n\t\t\t} else {\n\t\t\t\t$.extend( props, {\n\t\t\t\t\tposition: element.css( \"position\" ),\n\t\t\t\t\tzIndex: element.css( \"z-index\" )\n\t\t\t\t} );\n\t\t\t\t$.each( [ \"top\", \"left\", \"bottom\", \"right\" ], function( i, pos ) {\n\t\t\t\t\tprops[ pos ] = element.css( pos );\n\t\t\t\t\tif ( isNaN( parseInt( props[ pos ], 10 ) ) ) {\n\t\t\t\t\t\tprops[ pos ] = \"auto\";\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\telement.css( {\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: \"auto\",\n\t\t\t\t\tbottom: \"auto\"\n\t\t\t\t} );\n\t\t\t}\n\t\t\telement.css( size );\n\n\t\t\treturn wrapper.css( props ).show();\n\t\t},\n\n\t\tremoveWrapper: function( element ) {\n\t\t\tvar active = document.activeElement;\n\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\telement.parent().replaceWith( element );\n\n\t\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn element;\n\t\t}\n\t} );\n}\n\n$.extend( $.effects, {\n\tversion: \"1.13.3\",\n\n\tdefine: function( name, mode, effect ) {\n\t\tif ( !effect ) {\n\t\t\teffect = mode;\n\t\t\tmode = \"effect\";\n\t\t}\n\n\t\t$.effects.effect[ name ] = effect;\n\t\t$.effects.effect[ name ].mode = mode;\n\n\t\treturn effect;\n\t},\n\n\tscaledDimensions: function( element, percent, direction ) {\n\t\tif ( percent === 0 ) {\n\t\t\treturn {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\touterHeight: 0,\n\t\t\t\touterWidth: 0\n\t\t\t};\n\t\t}\n\n\t\tvar x = direction !== \"horizontal\" ? ( ( percent || 100 ) / 100 ) : 1,\n\t\t\ty = direction !== \"vertical\" ? ( ( percent || 100 ) / 100 ) : 1;\n\n\t\treturn {\n\t\t\theight: element.height() * y,\n\t\t\twidth: element.width() * x,\n\t\t\touterHeight: element.outerHeight() * y,\n\t\t\touterWidth: element.outerWidth() * x\n\t\t};\n\n\t},\n\n\tclipToBox: function( animation ) {\n\t\treturn {\n\t\t\twidth: animation.clip.right - animation.clip.left,\n\t\t\theight: animation.clip.bottom - animation.clip.top,\n\t\t\tleft: animation.clip.left,\n\t\t\ttop: animation.clip.top\n\t\t};\n\t},\n\n\t// Injects recently queued functions to be first in line (after \"inprogress\")\n\tunshift: function( element, queueLength, count ) {\n\t\tvar queue = element.queue();\n\n\t\tif ( queueLength > 1 ) {\n\t\t\tqueue.splice.apply( queue,\n\t\t\t\t[ 1, 0 ].concat( queue.splice( queueLength, count ) ) );\n\t\t}\n\t\telement.dequeue();\n\t},\n\n\tsaveStyle: function( element ) {\n\t\telement.data( dataSpaceStyle, element[ 0 ].style.cssText );\n\t},\n\n\trestoreStyle: function( element ) {\n\t\telement[ 0 ].style.cssText = element.data( dataSpaceStyle ) || \"\";\n\t\telement.removeData( dataSpaceStyle );\n\t},\n\n\tmode: function( element, mode ) {\n\t\tvar hidden = element.is( \":hidden\" );\n\n\t\tif ( mode === \"toggle\" ) {\n\t\t\tmode = hidden ? \"show\" : \"hide\";\n\t\t}\n\t\tif ( hidden ? mode === \"hide\" : mode === \"show\" ) {\n\t\t\tmode = \"none\";\n\t\t}\n\t\treturn mode;\n\t},\n\n\t// Translates a [top,left] array into a baseline value\n\tgetBaseline: function( origin, original ) {\n\t\tvar y, x;\n\n\t\tswitch ( origin[ 0 ] ) {\n\t\tcase \"top\":\n\t\t\ty = 0;\n\t\t\tbreak;\n\t\tcase \"middle\":\n\t\t\ty = 0.5;\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\ty = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ty = origin[ 0 ] / original.height;\n\t\t}\n\n\t\tswitch ( origin[ 1 ] ) {\n\t\tcase \"left\":\n\t\t\tx = 0;\n\t\t\tbreak;\n\t\tcase \"center\":\n\t\t\tx = 0.5;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tx = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tx = origin[ 1 ] / original.width;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t},\n\n\t// Creates a placeholder element so that the original element can be made absolute\n\tcreatePlaceholder: function( element ) {\n\t\tvar placeholder,\n\t\t\tcssPosition = element.css( \"position\" ),\n\t\t\tposition = element.position();\n\n\t\t// Lock in margins first to account for form elements, which\n\t\t// will change margin if you explicitly set height\n\t\t// see: https://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380\n\t\t// Support: Safari\n\t\telement.css( {\n\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\tmarginRight: element.css( \"marginRight\" )\n\t\t} )\n\t\t.outerWidth( element.outerWidth() )\n\t\t.outerHeight( element.outerHeight() );\n\n\t\tif ( /^(static|relative)/.test( cssPosition ) ) {\n\t\t\tcssPosition = \"absolute\";\n\n\t\t\tplaceholder = $( \"<\" + element[ 0 ].nodeName + \">\" ).insertAfter( element ).css( {\n\n\t\t\t\t// Convert inline to inline block to account for inline elements\n\t\t\t\t// that turn to inline block based on content (like img)\n\t\t\t\tdisplay: /^(inline|ruby)/.test( element.css( \"display\" ) ) ?\n\t\t\t\t\t\"inline-block\" :\n\t\t\t\t\t\"block\",\n\t\t\t\tvisibility: \"hidden\",\n\n\t\t\t\t// Margins need to be set to account for margin collapse\n\t\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\t\tmarginRight: element.css( \"marginRight\" ),\n\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t} )\n\t\t\t.outerWidth( element.outerWidth() )\n\t\t\t.outerHeight( element.outerHeight() )\n\t\t\t.addClass( \"ui-effects-placeholder\" );\n\n\t\t\telement.data( dataSpace + \"placeholder\", placeholder );\n\t\t}\n\n\t\telement.css( {\n\t\t\tposition: cssPosition,\n\t\t\tleft: position.left,\n\t\t\ttop: position.top\n\t\t} );\n\n\t\treturn placeholder;\n\t},\n\n\tremovePlaceholder: function( element ) {\n\t\tvar dataKey = dataSpace + \"placeholder\",\n\t\t\t\tplaceholder = element.data( dataKey );\n\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.remove();\n\t\t\telement.removeData( dataKey );\n\t\t}\n\t},\n\n\t// Removes a placeholder if it exists and restores\n\t// properties that were modified during placeholder creation\n\tcleanUp: function( element ) {\n\t\t$.effects.restoreStyle( element );\n\t\t$.effects.removePlaceholder( element );\n\t},\n\n\tsetTransition: function( element, list, factor, value ) {\n\t\tvalue = value || {};\n\t\t$.each( list, function( i, x ) {\n\t\t\tvar unit = element.cssUnit( x );\n\t\t\tif ( unit[ 0 ] > 0 ) {\n\t\t\t\tvalue[ x ] = unit[ 0 ] * factor + unit[ 1 ];\n\t\t\t}\n\t\t} );\n\t\treturn value;\n\t}\n} );\n\n// Return an effect options object for the given parameters:\nfunction _normalizeArguments( effect, options, speed, callback ) {\n\n\t// Allow passing all options as the first parameter\n\tif ( $.isPlainObject( effect ) ) {\n\t\toptions = effect;\n\t\teffect = effect.effect;\n\t}\n\n\t// Convert to an object\n\teffect = { effect: effect };\n\n\t// Catch (effect, null, ...)\n\tif ( options == null ) {\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, callback)\n\tif ( typeof options === \"function\" ) {\n\t\tcallback = options;\n\t\tspeed = null;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, speed, ?)\n\tif ( typeof options === \"number\" || $.fx.speeds[ options ] ) {\n\t\tcallback = speed;\n\t\tspeed = options;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, options, callback)\n\tif ( typeof speed === \"function\" ) {\n\t\tcallback = speed;\n\t\tspeed = null;\n\t}\n\n\t// Add options to effect\n\tif ( options ) {\n\t\t$.extend( effect, options );\n\t}\n\n\tspeed = speed || options.duration;\n\teffect.duration = $.fx.off ? 0 :\n\t\ttypeof speed === \"number\" ? speed :\n\t\tspeed in $.fx.speeds ? $.fx.speeds[ speed ] :\n\t\t$.fx.speeds._default;\n\n\teffect.complete = callback || options.complete;\n\n\treturn effect;\n}\n\nfunction standardAnimationOption( option ) {\n\n\t// Valid standard speeds (nothing, number, named speed)\n\tif ( !option || typeof option === \"number\" || $.fx.speeds[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Invalid strings - treat as \"normal\" speed\n\tif ( typeof option === \"string\" && !$.effects.effect[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Complete callback\n\tif ( typeof option === \"function\" ) {\n\t\treturn true;\n\t}\n\n\t// Options hash (but not naming an effect)\n\tif ( typeof option === \"object\" && !option.effect ) {\n\t\treturn true;\n\t}\n\n\t// Didn't match any standard API\n\treturn false;\n}\n\n$.fn.extend( {\n\teffect: function( /* effect, options, speed, callback */ ) {\n\t\tvar args = _normalizeArguments.apply( this, arguments ),\n\t\t\teffectMethod = $.effects.effect[ args.effect ],\n\t\t\tdefaultMode = effectMethod.mode,\n\t\t\tqueue = args.queue,\n\t\t\tqueueName = queue || \"fx\",\n\t\t\tcomplete = args.complete,\n\t\t\tmode = args.mode,\n\t\t\tmodes = [],\n\t\t\tprefilter = function( next ) {\n\t\t\t\tvar el = $( this ),\n\t\t\t\t\tnormalizedMode = $.effects.mode( el, mode ) || defaultMode;\n\n\t\t\t\t// Sentinel for duck-punching the :animated pseudo-selector\n\t\t\t\tel.data( dataSpaceAnimated, true );\n\n\t\t\t\t// Save effect mode for later use,\n\t\t\t\t// we can't just call $.effects.mode again later,\n\t\t\t\t// as the .show() below destroys the initial state\n\t\t\t\tmodes.push( normalizedMode );\n\n\t\t\t\t// See $.uiBackCompat inside of run() for removal of defaultMode in 1.14\n\t\t\t\tif ( defaultMode && ( normalizedMode === \"show\" ||\n\t\t\t\t\t\t( normalizedMode === defaultMode && normalizedMode === \"hide\" ) ) ) {\n\t\t\t\t\tel.show();\n\t\t\t\t}\n\n\t\t\t\tif ( !defaultMode || normalizedMode !== \"none\" ) {\n\t\t\t\t\t$.effects.saveStyle( el );\n\t\t\t\t}\n\n\t\t\t\tif ( typeof next === \"function\" ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( $.fx.off || !effectMethod ) {\n\n\t\t\t// Delegate to the original method (e.g., .show()) if possible\n\t\t\tif ( mode ) {\n\t\t\t\treturn this[ mode ]( args.duration, complete );\n\t\t\t} else {\n\t\t\t\treturn this.each( function() {\n\t\t\t\t\tif ( complete ) {\n\t\t\t\t\t\tcomplete.call( this );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\tfunction run( next ) {\n\t\t\tvar elem = $( this );\n\n\t\t\tfunction cleanup() {\n\t\t\t\telem.removeData( dataSpaceAnimated );\n\n\t\t\t\t$.effects.cleanUp( elem );\n\n\t\t\t\tif ( args.mode === \"hide\" ) {\n\t\t\t\t\telem.hide();\n\t\t\t\t}\n\n\t\t\t\tdone();\n\t\t\t}\n\n\t\t\tfunction done() {\n\t\t\t\tif ( typeof complete === \"function\" ) {\n\t\t\t\t\tcomplete.call( elem[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tif ( typeof next === \"function\" ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override mode option on a per element basis,\n\t\t\t// as toggle can be either show or hide depending on element state\n\t\t\targs.mode = modes.shift();\n\n\t\t\tif ( $.uiBackCompat !== false && !defaultMode ) {\n\t\t\t\tif ( elem.is( \":hidden\" ) ? mode === \"hide\" : mode === \"show\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, done );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( args.mode === \"none\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, cleanup );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Run prefilter on all elements first to ensure that\n\t\t// any showing or hiding happens before placeholder creation,\n\t\t// which ensures that any layout changes are correctly captured.\n\t\treturn queue === false ?\n\t\t\tthis.each( prefilter ).each( run ) :\n\t\t\tthis.queue( queueName, prefilter ).queue( queueName, run );\n\t},\n\n\tshow: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"show\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.show ),\n\n\thide: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"hide\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.hide ),\n\n\ttoggle: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) || typeof option === \"boolean\" ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"toggle\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggle ),\n\n\tcssUnit: function( key ) {\n\t\tvar style = this.css( key ),\n\t\t\tval = [];\n\n\t\t$.each( [ \"em\", \"px\", \"%\", \"pt\" ], function( i, unit ) {\n\t\t\tif ( style.indexOf( unit ) > 0 ) {\n\t\t\t\tval = [ parseFloat( style ), unit ];\n\t\t\t}\n\t\t} );\n\t\treturn val;\n\t},\n\n\tcssClip: function( clipObj ) {\n\t\tif ( clipObj ) {\n\t\t\treturn this.css( \"clip\", \"rect(\" + clipObj.top + \"px \" + clipObj.right + \"px \" +\n\t\t\t\tclipObj.bottom + \"px \" + clipObj.left + \"px)\" );\n\t\t}\n\t\treturn parseClip( this.css( \"clip\" ), this );\n\t},\n\n\ttransfer: function( options, done ) {\n\t\tvar element = $( this ),\n\t\t\ttarget = $( options.to ),\n\t\t\ttargetFixed = target.css( \"position\" ) === \"fixed\",\n\t\t\tbody = $( \"body\" ),\n\t\t\tfixTop = targetFixed ? body.scrollTop() : 0,\n\t\t\tfixLeft = targetFixed ? body.scrollLeft() : 0,\n\t\t\tendPosition = target.offset(),\n\t\t\tanimation = {\n\t\t\t\ttop: endPosition.top - fixTop,\n\t\t\t\tleft: endPosition.left - fixLeft,\n\t\t\t\theight: target.innerHeight(),\n\t\t\t\twidth: target.innerWidth()\n\t\t\t},\n\t\t\tstartPosition = element.offset(),\n\t\t\ttransfer = $( \"
    \" );\n\n\t\ttransfer\n\t\t\t.appendTo( \"body\" )\n\t\t\t.addClass( options.className )\n\t\t\t.css( {\n\t\t\t\ttop: startPosition.top - fixTop,\n\t\t\t\tleft: startPosition.left - fixLeft,\n\t\t\t\theight: element.innerHeight(),\n\t\t\t\twidth: element.innerWidth(),\n\t\t\t\tposition: targetFixed ? \"fixed\" : \"absolute\"\n\t\t\t} )\n\t\t\t.animate( animation, options.duration, options.easing, function() {\n\t\t\t\ttransfer.remove();\n\t\t\t\tif ( typeof done === \"function\" ) {\n\t\t\t\t\tdone();\n\t\t\t\t}\n\t\t\t} );\n\t}\n} );\n\nfunction parseClip( str, element ) {\n\t\tvar outerWidth = element.outerWidth(),\n\t\t\touterHeight = element.outerHeight(),\n\t\t\tclipRegex = /^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/,\n\t\t\tvalues = clipRegex.exec( str ) || [ \"\", 0, outerWidth, outerHeight, 0 ];\n\n\t\treturn {\n\t\t\ttop: parseFloat( values[ 1 ] ) || 0,\n\t\t\tright: values[ 2 ] === \"auto\" ? outerWidth : parseFloat( values[ 2 ] ),\n\t\t\tbottom: values[ 3 ] === \"auto\" ? outerHeight : parseFloat( values[ 3 ] ),\n\t\t\tleft: parseFloat( values[ 4 ] ) || 0\n\t\t};\n}\n\n$.fx.step.clip = function( fx ) {\n\tif ( !fx.clipInit ) {\n\t\tfx.start = $( fx.elem ).cssClip();\n\t\tif ( typeof fx.end === \"string\" ) {\n\t\t\tfx.end = parseClip( fx.end, fx.elem );\n\t\t}\n\t\tfx.clipInit = true;\n\t}\n\n\t$( fx.elem ).cssClip( {\n\t\ttop: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top,\n\t\tright: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right,\n\t\tbottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom,\n\t\tleft: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left\n\t} );\n};\n\n} )();\n\n/******************************************************************************/\n/*********************************** EASING ***********************************/\n/******************************************************************************/\n\n( function() {\n\n// Based on easing equations from Robert Penner (http://robertpenner.com/easing)\n\nvar baseEasings = {};\n\n$.each( [ \"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\" ], function( i, name ) {\n\tbaseEasings[ name ] = function( p ) {\n\t\treturn Math.pow( p, i + 2 );\n\t};\n} );\n\n$.extend( baseEasings, {\n\tSine: function( p ) {\n\t\treturn 1 - Math.cos( p * Math.PI / 2 );\n\t},\n\tCirc: function( p ) {\n\t\treturn 1 - Math.sqrt( 1 - p * p );\n\t},\n\tElastic: function( p ) {\n\t\treturn p === 0 || p === 1 ? p :\n\t\t\t-Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 );\n\t},\n\tBack: function( p ) {\n\t\treturn p * p * ( 3 * p - 2 );\n\t},\n\tBounce: function( p ) {\n\t\tvar pow2,\n\t\t\tbounce = 4;\n\n\t\twhile ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}\n\t\treturn 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );\n\t}\n} );\n\n$.each( baseEasings, function( name, easeIn ) {\n\t$.easing[ \"easeIn\" + name ] = easeIn;\n\t$.easing[ \"easeOut\" + name ] = function( p ) {\n\t\treturn 1 - easeIn( 1 - p );\n\t};\n\t$.easing[ \"easeInOut\" + name ] = function( p ) {\n\t\treturn p < 0.5 ?\n\t\t\teaseIn( p * 2 ) / 2 :\n\t\t\t1 - easeIn( p * -2 + 2 ) / 2;\n\t};\n} );\n\n} )();\n\nvar effect = $.effects;\n\n\n/*!\n * jQuery UI Effects Blind 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Blind Effect\n//>>group: Effects\n//>>description: Blinds the element.\n//>>docs: https://api.jqueryui.com/blind-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectBlind = $.effects.define( \"blind\", \"hide\", function( options, done ) {\n\tvar map = {\n\t\t\tup: [ \"bottom\", \"top\" ],\n\t\t\tvertical: [ \"bottom\", \"top\" ],\n\t\t\tdown: [ \"top\", \"bottom\" ],\n\t\t\tleft: [ \"right\", \"left\" ],\n\t\t\thorizontal: [ \"right\", \"left\" ],\n\t\t\tright: [ \"left\", \"right\" ]\n\t\t},\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"up\",\n\t\tstart = element.cssClip(),\n\t\tanimate = { clip: $.extend( {}, start ) },\n\t\tplaceholder = $.effects.createPlaceholder( element );\n\n\tanimate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ];\n\n\tif ( options.mode === \"show\" ) {\n\t\telement.cssClip( animate.clip );\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.css( $.effects.clipToBox( animate ) );\n\t\t}\n\n\t\tanimate.clip = start;\n\t}\n\n\tif ( placeholder ) {\n\t\tplaceholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing );\n\t}\n\n\telement.animate( animate, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Bounce 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Bounce Effect\n//>>group: Effects\n//>>description: Bounces an element horizontally or vertically n times.\n//>>docs: https://api.jqueryui.com/bounce-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectBounce = $.effects.define( \"bounce\", function( options, done ) {\n\tvar upAnim, downAnim, refValue,\n\t\telement = $( this ),\n\n\t\t// Defaults:\n\t\tmode = options.mode,\n\t\thide = mode === \"hide\",\n\t\tshow = mode === \"show\",\n\t\tdirection = options.direction || \"up\",\n\t\tdistance = options.distance,\n\t\ttimes = options.times || 5,\n\n\t\t// Number of internal animations\n\t\tanims = times * 2 + ( show || hide ? 1 : 0 ),\n\t\tspeed = options.duration / anims,\n\t\teasing = options.easing,\n\n\t\t// Utility:\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ),\n\t\ti = 0,\n\n\t\tqueuelen = element.queue().length;\n\n\t$.effects.createPlaceholder( element );\n\n\trefValue = element.css( ref );\n\n\t// Default distance for the BIGGEST bounce is the outer Distance / 3\n\tif ( !distance ) {\n\t\tdistance = element[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]() / 3;\n\t}\n\n\tif ( show ) {\n\t\tdownAnim = { opacity: 1 };\n\t\tdownAnim[ ref ] = refValue;\n\n\t\t// If we are showing, force opacity 0 and set the initial position\n\t\t// then do the \"first\" animation\n\t\telement\n\t\t\t.css( \"opacity\", 0 )\n\t\t\t.css( ref, motion ? -distance * 2 : distance * 2 )\n\t\t\t.animate( downAnim, speed, easing );\n\t}\n\n\t// Start at the smallest distance if we are hiding\n\tif ( hide ) {\n\t\tdistance = distance / Math.pow( 2, times - 1 );\n\t}\n\n\tdownAnim = {};\n\tdownAnim[ ref ] = refValue;\n\n\t// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here\n\tfor ( ; i < times; i++ ) {\n\t\tupAnim = {};\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\telement\n\t\t\t.animate( upAnim, speed, easing )\n\t\t\t.animate( downAnim, speed, easing );\n\n\t\tdistance = hide ? distance * 2 : distance / 2;\n\t}\n\n\t// Last Bounce when Hiding\n\tif ( hide ) {\n\t\tupAnim = { opacity: 0 };\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\telement.animate( upAnim, speed, easing );\n\t}\n\n\telement.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Clip 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Clip Effect\n//>>group: Effects\n//>>description: Clips the element on and off like an old TV.\n//>>docs: https://api.jqueryui.com/clip-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectClip = $.effects.define( \"clip\", \"hide\", function( options, done ) {\n\tvar start,\n\t\tanimate = {},\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"vertical\",\n\t\tboth = direction === \"both\",\n\t\thorizontal = both || direction === \"horizontal\",\n\t\tvertical = both || direction === \"vertical\";\n\n\tstart = element.cssClip();\n\tanimate.clip = {\n\t\ttop: vertical ? ( start.bottom - start.top ) / 2 : start.top,\n\t\tright: horizontal ? ( start.right - start.left ) / 2 : start.right,\n\t\tbottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom,\n\t\tleft: horizontal ? ( start.right - start.left ) / 2 : start.left\n\t};\n\n\t$.effects.createPlaceholder( element );\n\n\tif ( options.mode === \"show\" ) {\n\t\telement.cssClip( animate.clip );\n\t\tanimate.clip = start;\n\t}\n\n\telement.animate( animate, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n\n} );\n\n\n/*!\n * jQuery UI Effects Drop 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Drop Effect\n//>>group: Effects\n//>>description: Moves an element in one direction and hides it at the same time.\n//>>docs: https://api.jqueryui.com/drop-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectDrop = $.effects.define( \"drop\", \"hide\", function( options, done ) {\n\n\tvar distance,\n\t\telement = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\tdirection = options.direction || \"left\",\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ) ? \"-=\" : \"+=\",\n\t\toppositeMotion = ( motion === \"+=\" ) ? \"-=\" : \"+=\",\n\t\tanimation = {\n\t\t\topacity: 0\n\t\t};\n\n\t$.effects.createPlaceholder( element );\n\n\tdistance = options.distance ||\n\t\telement[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true ) / 2;\n\n\tanimation[ ref ] = motion + distance;\n\n\tif ( show ) {\n\t\telement.css( animation );\n\n\t\tanimation[ ref ] = oppositeMotion + distance;\n\t\tanimation.opacity = 1;\n\t}\n\n\t// Animate\n\telement.animate( animation, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Explode 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Explode Effect\n//>>group: Effects\n/* eslint-disable max-len */\n//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.\n/* eslint-enable max-len */\n//>>docs: https://api.jqueryui.com/explode-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectExplode = $.effects.define( \"explode\", \"hide\", function( options, done ) {\n\n\tvar i, j, left, top, mx, my,\n\t\trows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3,\n\t\tcells = rows,\n\t\telement = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\n\t\t// Show and then visibility:hidden the element before calculating offset\n\t\toffset = element.show().css( \"visibility\", \"hidden\" ).offset(),\n\n\t\t// Width and height of a piece\n\t\twidth = Math.ceil( element.outerWidth() / cells ),\n\t\theight = Math.ceil( element.outerHeight() / rows ),\n\t\tpieces = [];\n\n\t// Children animate complete:\n\tfunction childComplete() {\n\t\tpieces.push( this );\n\t\tif ( pieces.length === rows * cells ) {\n\t\t\tanimComplete();\n\t\t}\n\t}\n\n\t// Clone the element for each row and cell.\n\tfor ( i = 0; i < rows; i++ ) { // ===>\n\t\ttop = offset.top + i * height;\n\t\tmy = i - ( rows - 1 ) / 2;\n\n\t\tfor ( j = 0; j < cells; j++ ) { // |||\n\t\t\tleft = offset.left + j * width;\n\t\t\tmx = j - ( cells - 1 ) / 2;\n\n\t\t\t// Create a clone of the now hidden main element that will be absolute positioned\n\t\t\t// within a wrapper div off the -left and -top equal to size of our pieces\n\t\t\telement\n\t\t\t\t.clone()\n\t\t\t\t.appendTo( \"body\" )\n\t\t\t\t.wrap( \"
    \" )\n\t\t\t\t.css( {\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\tvisibility: \"visible\",\n\t\t\t\t\tleft: -j * width,\n\t\t\t\t\ttop: -i * height\n\t\t\t\t} )\n\n\t\t\t\t// Select the wrapper - make it overflow: hidden and absolute positioned based on\n\t\t\t\t// where the original was located +left and +top equal to the size of pieces\n\t\t\t\t.parent()\n\t\t\t\t\t.addClass( \"ui-effects-explode\" )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: height,\n\t\t\t\t\t\tleft: left + ( show ? mx * width : 0 ),\n\t\t\t\t\t\ttop: top + ( show ? my * height : 0 ),\n\t\t\t\t\t\topacity: show ? 0 : 1\n\t\t\t\t\t} )\n\t\t\t\t\t.animate( {\n\t\t\t\t\t\tleft: left + ( show ? 0 : mx * width ),\n\t\t\t\t\t\ttop: top + ( show ? 0 : my * height ),\n\t\t\t\t\t\topacity: show ? 1 : 0\n\t\t\t\t\t}, options.duration || 500, options.easing, childComplete );\n\t\t}\n\t}\n\n\tfunction animComplete() {\n\t\telement.css( {\n\t\t\tvisibility: \"visible\"\n\t\t} );\n\t\t$( pieces ).remove();\n\t\tdone();\n\t}\n} );\n\n\n/*!\n * jQuery UI Effects Fade 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Fade Effect\n//>>group: Effects\n//>>description: Fades the element.\n//>>docs: https://api.jqueryui.com/fade-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectFade = $.effects.define( \"fade\", \"toggle\", function( options, done ) {\n\tvar show = options.mode === \"show\";\n\n\t$( this )\n\t\t.css( \"opacity\", show ? 0 : 1 )\n\t\t.animate( {\n\t\t\topacity: show ? 1 : 0\n\t\t}, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Fold 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Fold Effect\n//>>group: Effects\n//>>description: Folds an element first horizontally and then vertically.\n//>>docs: https://api.jqueryui.com/fold-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectFold = $.effects.define( \"fold\", \"hide\", function( options, done ) {\n\n\t// Create element\n\tvar element = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tsize = options.size || 15,\n\t\tpercent = /([0-9]+)%/.exec( size ),\n\t\thorizFirst = !!options.horizFirst,\n\t\tref = horizFirst ? [ \"right\", \"bottom\" ] : [ \"bottom\", \"right\" ],\n\t\tduration = options.duration / 2,\n\n\t\tplaceholder = $.effects.createPlaceholder( element ),\n\n\t\tstart = element.cssClip(),\n\t\tanimation1 = { clip: $.extend( {}, start ) },\n\t\tanimation2 = { clip: $.extend( {}, start ) },\n\n\t\tdistance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ],\n\n\t\tqueuelen = element.queue().length;\n\n\tif ( percent ) {\n\t\tsize = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];\n\t}\n\tanimation1.clip[ ref[ 0 ] ] = size;\n\tanimation2.clip[ ref[ 0 ] ] = size;\n\tanimation2.clip[ ref[ 1 ] ] = 0;\n\n\tif ( show ) {\n\t\telement.cssClip( animation2.clip );\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.css( $.effects.clipToBox( animation2 ) );\n\t\t}\n\n\t\tanimation2.clip = start;\n\t}\n\n\t// Animate\n\telement\n\t\t.queue( function( next ) {\n\t\t\tif ( placeholder ) {\n\t\t\t\tplaceholder\n\t\t\t\t\t.animate( $.effects.clipToBox( animation1 ), duration, options.easing )\n\t\t\t\t\t.animate( $.effects.clipToBox( animation2 ), duration, options.easing );\n\t\t\t}\n\n\t\t\tnext();\n\t\t} )\n\t\t.animate( animation1, duration, options.easing )\n\t\t.animate( animation2, duration, options.easing )\n\t\t.queue( done );\n\n\t$.effects.unshift( element, queuelen, 4 );\n} );\n\n\n/*!\n * jQuery UI Effects Highlight 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Highlight Effect\n//>>group: Effects\n//>>description: Highlights the background of an element in a defined color for a custom duration.\n//>>docs: https://api.jqueryui.com/highlight-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectHighlight = $.effects.define( \"highlight\", \"show\", function( options, done ) {\n\tvar element = $( this ),\n\t\tanimation = {\n\t\t\tbackgroundColor: element.css( \"backgroundColor\" )\n\t\t};\n\n\tif ( options.mode === \"hide\" ) {\n\t\tanimation.opacity = 0;\n\t}\n\n\t$.effects.saveStyle( element );\n\n\telement\n\t\t.css( {\n\t\t\tbackgroundImage: \"none\",\n\t\t\tbackgroundColor: options.color || \"#ffff99\"\n\t\t} )\n\t\t.animate( animation, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Size 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Size Effect\n//>>group: Effects\n//>>description: Resize an element to a specified width and height.\n//>>docs: https://api.jqueryui.com/size-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectSize = $.effects.define( \"size\", function( options, done ) {\n\n\t// Create element\n\tvar baseline, factor, temp,\n\t\telement = $( this ),\n\n\t\t// Copy for children\n\t\tcProps = [ \"fontSize\" ],\n\t\tvProps = [ \"borderTopWidth\", \"borderBottomWidth\", \"paddingTop\", \"paddingBottom\" ],\n\t\thProps = [ \"borderLeftWidth\", \"borderRightWidth\", \"paddingLeft\", \"paddingRight\" ],\n\n\t\t// Set options\n\t\tmode = options.mode,\n\t\trestore = mode !== \"effect\",\n\t\tscale = options.scale || \"both\",\n\t\torigin = options.origin || [ \"middle\", \"center\" ],\n\t\tposition = element.css( \"position\" ),\n\t\tpos = element.position(),\n\t\toriginal = $.effects.scaledDimensions( element ),\n\t\tfrom = options.from || original,\n\t\tto = options.to || $.effects.scaledDimensions( element, 0 );\n\n\t$.effects.createPlaceholder( element );\n\n\tif ( mode === \"show\" ) {\n\t\ttemp = from;\n\t\tfrom = to;\n\t\tto = temp;\n\t}\n\n\t// Set scaling factor\n\tfactor = {\n\t\tfrom: {\n\t\t\ty: from.height / original.height,\n\t\t\tx: from.width / original.width\n\t\t},\n\t\tto: {\n\t\t\ty: to.height / original.height,\n\t\t\tx: to.width / original.width\n\t\t}\n\t};\n\n\t// Scale the css box\n\tif ( scale === \"box\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tfrom = $.effects.setTransition( element, vProps, factor.from.y, from );\n\t\t\tto = $.effects.setTransition( element, vProps, factor.to.y, to );\n\t\t}\n\n\t\t// Horizontal props scaling\n\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\tfrom = $.effects.setTransition( element, hProps, factor.from.x, from );\n\t\t\tto = $.effects.setTransition( element, hProps, factor.to.x, to );\n\t\t}\n\t}\n\n\t// Scale the content\n\tif ( scale === \"content\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tfrom = $.effects.setTransition( element, cProps, factor.from.y, from );\n\t\t\tto = $.effects.setTransition( element, cProps, factor.to.y, to );\n\t\t}\n\t}\n\n\t// Adjust the position properties based on the provided origin points\n\tif ( origin ) {\n\t\tbaseline = $.effects.getBaseline( origin, original );\n\t\tfrom.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top;\n\t\tfrom.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left;\n\t\tto.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top;\n\t\tto.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left;\n\t}\n\tdelete from.outerHeight;\n\tdelete from.outerWidth;\n\telement.css( from );\n\n\t// Animate the children if desired\n\tif ( scale === \"content\" || scale === \"both\" ) {\n\n\t\tvProps = vProps.concat( [ \"marginTop\", \"marginBottom\" ] ).concat( cProps );\n\t\thProps = hProps.concat( [ \"marginLeft\", \"marginRight\" ] );\n\n\t\t// Only animate children with width attributes specified\n\t\t// TODO: is this right? should we include anything with css width specified as well\n\t\telement.find( \"*[width]\" ).each( function() {\n\t\t\tvar child = $( this ),\n\t\t\t\tchildOriginal = $.effects.scaledDimensions( child ),\n\t\t\t\tchildFrom = {\n\t\t\t\t\theight: childOriginal.height * factor.from.y,\n\t\t\t\t\twidth: childOriginal.width * factor.from.x,\n\t\t\t\t\touterHeight: childOriginal.outerHeight * factor.from.y,\n\t\t\t\t\touterWidth: childOriginal.outerWidth * factor.from.x\n\t\t\t\t},\n\t\t\t\tchildTo = {\n\t\t\t\t\theight: childOriginal.height * factor.to.y,\n\t\t\t\t\twidth: childOriginal.width * factor.to.x,\n\t\t\t\t\touterHeight: childOriginal.height * factor.to.y,\n\t\t\t\t\touterWidth: childOriginal.width * factor.to.x\n\t\t\t\t};\n\n\t\t\t// Vertical props scaling\n\t\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\t\tchildFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom );\n\t\t\t\tchildTo = $.effects.setTransition( child, vProps, factor.to.y, childTo );\n\t\t\t}\n\n\t\t\t// Horizontal props scaling\n\t\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\t\tchildFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom );\n\t\t\t\tchildTo = $.effects.setTransition( child, hProps, factor.to.x, childTo );\n\t\t\t}\n\n\t\t\tif ( restore ) {\n\t\t\t\t$.effects.saveStyle( child );\n\t\t\t}\n\n\t\t\t// Animate children\n\t\t\tchild.css( childFrom );\n\t\t\tchild.animate( childTo, options.duration, options.easing, function() {\n\n\t\t\t\t// Restore children\n\t\t\t\tif ( restore ) {\n\t\t\t\t\t$.effects.restoreStyle( child );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Animate\n\telement.animate( to, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: function() {\n\n\t\t\tvar offset = element.offset();\n\n\t\t\tif ( to.opacity === 0 ) {\n\t\t\t\telement.css( \"opacity\", from.opacity );\n\t\t\t}\n\n\t\t\tif ( !restore ) {\n\t\t\t\telement\n\t\t\t\t\t.css( \"position\", position === \"static\" ? \"relative\" : position )\n\t\t\t\t\t.offset( offset );\n\n\t\t\t\t// Need to save style here so that automatic style restoration\n\t\t\t\t// doesn't restore to the original styles from before the animation.\n\t\t\t\t$.effects.saveStyle( element );\n\t\t\t}\n\n\t\t\tdone();\n\t\t}\n\t} );\n\n} );\n\n\n/*!\n * jQuery UI Effects Scale 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Scale Effect\n//>>group: Effects\n//>>description: Grows or shrinks an element and its content.\n//>>docs: https://api.jqueryui.com/scale-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectScale = $.effects.define( \"scale\", function( options, done ) {\n\n\t// Create element\n\tvar el = $( this ),\n\t\tmode = options.mode,\n\t\tpercent = parseInt( options.percent, 10 ) ||\n\t\t\t( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== \"effect\" ? 0 : 100 ) ),\n\n\t\tnewOptions = $.extend( true, {\n\t\t\tfrom: $.effects.scaledDimensions( el ),\n\t\t\tto: $.effects.scaledDimensions( el, percent, options.direction || \"both\" ),\n\t\t\torigin: options.origin || [ \"middle\", \"center\" ]\n\t\t}, options );\n\n\t// Fade option to support puff\n\tif ( options.fade ) {\n\t\tnewOptions.from.opacity = 1;\n\t\tnewOptions.to.opacity = 0;\n\t}\n\n\t$.effects.effect.size.call( this, newOptions, done );\n} );\n\n\n/*!\n * jQuery UI Effects Puff 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Puff Effect\n//>>group: Effects\n//>>description: Creates a puff effect by scaling the element up and hiding it at the same time.\n//>>docs: https://api.jqueryui.com/puff-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectPuff = $.effects.define( \"puff\", \"hide\", function( options, done ) {\n\tvar newOptions = $.extend( true, {}, options, {\n\t\tfade: true,\n\t\tpercent: parseInt( options.percent, 10 ) || 150\n\t} );\n\n\t$.effects.effect.scale.call( this, newOptions, done );\n} );\n\n\n/*!\n * jQuery UI Effects Pulsate 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Pulsate Effect\n//>>group: Effects\n//>>description: Pulsates an element n times by changing the opacity to zero and back.\n//>>docs: https://api.jqueryui.com/pulsate-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectPulsate = $.effects.define( \"pulsate\", \"show\", function( options, done ) {\n\tvar element = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tshowhide = show || hide,\n\n\t\t// Showing or hiding leaves off the \"last\" animation\n\t\tanims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),\n\t\tduration = options.duration / anims,\n\t\tanimateTo = 0,\n\t\ti = 1,\n\t\tqueuelen = element.queue().length;\n\n\tif ( show || !element.is( \":visible\" ) ) {\n\t\telement.css( \"opacity\", 0 ).show();\n\t\tanimateTo = 1;\n\t}\n\n\t// Anims - 1 opacity \"toggles\"\n\tfor ( ; i < anims; i++ ) {\n\t\telement.animate( { opacity: animateTo }, duration, options.easing );\n\t\tanimateTo = 1 - animateTo;\n\t}\n\n\telement.animate( { opacity: animateTo }, duration, options.easing );\n\n\telement.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Shake 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Shake Effect\n//>>group: Effects\n//>>description: Shakes an element horizontally or vertically n times.\n//>>docs: https://api.jqueryui.com/shake-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectShake = $.effects.define( \"shake\", function( options, done ) {\n\n\tvar i = 1,\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"left\",\n\t\tdistance = options.distance || 20,\n\t\ttimes = options.times || 3,\n\t\tanims = times * 2 + 1,\n\t\tspeed = Math.round( options.duration / anims ),\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tpositiveMotion = ( direction === \"up\" || direction === \"left\" ),\n\t\tanimation = {},\n\t\tanimation1 = {},\n\t\tanimation2 = {},\n\n\t\tqueuelen = element.queue().length;\n\n\t$.effects.createPlaceholder( element );\n\n\t// Animation\n\tanimation[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance;\n\tanimation1[ ref ] = ( positiveMotion ? \"+=\" : \"-=\" ) + distance * 2;\n\tanimation2[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance * 2;\n\n\t// Animate\n\telement.animate( animation, speed, options.easing );\n\n\t// Shakes\n\tfor ( ; i < times; i++ ) {\n\t\telement\n\t\t\t.animate( animation1, speed, options.easing )\n\t\t\t.animate( animation2, speed, options.easing );\n\t}\n\n\telement\n\t\t.animate( animation1, speed, options.easing )\n\t\t.animate( animation, speed / 2, options.easing )\n\t\t.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Slide 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Slide Effect\n//>>group: Effects\n//>>description: Slides an element in and out of the viewport.\n//>>docs: https://api.jqueryui.com/slide-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effectsEffectSlide = $.effects.define( \"slide\", \"show\", function( options, done ) {\n\tvar startClip, startRef,\n\t\telement = $( this ),\n\t\tmap = {\n\t\t\tup: [ \"bottom\", \"top\" ],\n\t\t\tdown: [ \"top\", \"bottom\" ],\n\t\t\tleft: [ \"right\", \"left\" ],\n\t\t\tright: [ \"left\", \"right\" ]\n\t\t},\n\t\tmode = options.mode,\n\t\tdirection = options.direction || \"left\",\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tpositiveMotion = ( direction === \"up\" || direction === \"left\" ),\n\t\tdistance = options.distance ||\n\t\t\telement[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true ),\n\t\tanimation = {};\n\n\t$.effects.createPlaceholder( element );\n\n\tstartClip = element.cssClip();\n\tstartRef = element.position()[ ref ];\n\n\t// Define hide animation\n\tanimation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef;\n\tanimation.clip = element.cssClip();\n\tanimation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ];\n\n\t// Reverse the animation if we're showing\n\tif ( mode === \"show\" ) {\n\t\telement.cssClip( animation.clip );\n\t\telement.css( ref, animation[ ref ] );\n\t\tanimation.clip = startClip;\n\t\tanimation[ ref ] = startRef;\n\t}\n\n\t// Actually animate\n\telement.animate( animation, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Transfer 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Transfer Effect\n//>>group: Effects\n//>>description: Displays a transfer effect from one element to another.\n//>>docs: https://api.jqueryui.com/transfer-effect/\n//>>demos: https://jqueryui.com/effect/\n\n\nvar effect;\nif ( $.uiBackCompat !== false ) {\n\teffect = $.effects.define( \"transfer\", function( options, done ) {\n\t\t$( this ).transfer( options, done );\n\t} );\n}\nvar effectsEffectTransfer = effect;\n\n\n/*!\n * jQuery UI Focusable 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: :focusable Selector\n//>>group: Core\n//>>description: Selects elements which can be focused.\n//>>docs: https://api.jqueryui.com/focusable-selector/\n\n\n// Selectors\n$.ui.focusable = function( element, hasTabindex ) {\n\tvar map, mapName, img, focusableIfVisible, fieldset,\n\t\tnodeName = element.nodeName.toLowerCase();\n\n\tif ( \"area\" === nodeName ) {\n\t\tmap = element.parentNode;\n\t\tmapName = map.name;\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\n\t\t\treturn false;\n\t\t}\n\t\timg = $( \"img[usemap='#\" + mapName + \"']\" );\n\t\treturn img.length > 0 && img.is( \":visible\" );\n\t}\n\n\tif ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {\n\t\tfocusableIfVisible = !element.disabled;\n\n\t\tif ( focusableIfVisible ) {\n\n\t\t\t// Form controls within a disabled fieldset are disabled.\n\t\t\t// However, controls within the fieldset's legend do not get disabled.\n\t\t\t// Since controls generally aren't placed inside legends, we skip\n\t\t\t// this portion of the check.\n\t\t\tfieldset = $( element ).closest( \"fieldset\" )[ 0 ];\n\t\t\tif ( fieldset ) {\n\t\t\t\tfocusableIfVisible = !fieldset.disabled;\n\t\t\t}\n\t\t}\n\t} else if ( \"a\" === nodeName ) {\n\t\tfocusableIfVisible = element.href || hasTabindex;\n\t} else {\n\t\tfocusableIfVisible = hasTabindex;\n\t}\n\n\treturn focusableIfVisible && $( element ).is( \":visible\" ) && visible( $( element ) );\n};\n\n// Support: IE 8 only\n// IE 8 doesn't resolve inherit to visible/hidden for computed values\nfunction visible( element ) {\n\tvar visibility = element.css( \"visibility\" );\n\twhile ( visibility === \"inherit\" ) {\n\t\telement = element.parent();\n\t\tvisibility = element.css( \"visibility\" );\n\t}\n\treturn visibility === \"visible\";\n}\n\n$.extend( $.expr.pseudos, {\n\tfocusable: function( element ) {\n\t\treturn $.ui.focusable( element, $.attr( element, \"tabindex\" ) != null );\n\t}\n} );\n\nvar focusable = $.ui.focusable;\n\n\n\n// Support: IE8 Only\n// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop\n// with a string, so we need to find the proper form.\nvar form = $.fn._form = function() {\n\treturn typeof this[ 0 ].form === \"string\" ? this.closest( \"form\" ) : $( this[ 0 ].form );\n};\n\n\n/*!\n * jQuery UI Form Reset Mixin 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Form Reset Mixin\n//>>group: Core\n//>>description: Refresh input widgets when their form is reset\n//>>docs: https://api.jqueryui.com/form-reset-mixin/\n\n\nvar formResetMixin = $.ui.formResetMixin = {\n\t_formResetHandler: function() {\n\t\tvar form = $( this );\n\n\t\t// Wait for the form reset to actually happen before refreshing\n\t\tsetTimeout( function() {\n\t\t\tvar instances = form.data( \"ui-form-reset-instances\" );\n\t\t\t$.each( instances, function() {\n\t\t\t\tthis.refresh();\n\t\t\t} );\n\t\t} );\n\t},\n\n\t_bindFormResetHandler: function() {\n\t\tthis.form = this.element._form();\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" ) || [];\n\t\tif ( !instances.length ) {\n\n\t\t\t// We don't use _on() here because we use a single event handler per form\n\t\t\tthis.form.on( \"reset.ui-form-reset\", this._formResetHandler );\n\t\t}\n\t\tinstances.push( this );\n\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t},\n\n\t_unbindFormResetHandler: function() {\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" );\n\t\tinstances.splice( $.inArray( this, instances ), 1 );\n\t\tif ( instances.length ) {\n\t\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t\t} else {\n\t\t\tthis.form\n\t\t\t\t.removeData( \"ui-form-reset-instances\" )\n\t\t\t\t.off( \"reset.ui-form-reset\" );\n\t\t}\n\t}\n};\n\n\n/*!\n * jQuery UI Support for jQuery core 1.8.x and newer 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n *\n */\n\n//>>label: jQuery 1.8+ Support\n//>>group: Core\n//>>description: Support version 1.8.x and newer of jQuery core\n\n\n// Support: jQuery 1.9.x or older\n// $.expr[ \":\" ] is deprecated.\nif ( !$.expr.pseudos ) {\n\t$.expr.pseudos = $.expr[ \":\" ];\n}\n\n// Support: jQuery 1.11.x or older\n// $.unique has been renamed to $.uniqueSort\nif ( !$.uniqueSort ) {\n\t$.uniqueSort = $.unique;\n}\n\n// Support: jQuery 2.2.x or older.\n// This method has been defined in jQuery 3.0.0.\n// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js\nif ( !$.escapeSelector ) {\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\tvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\n\tvar fcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t};\n\n\t$.escapeSelector = function( sel ) {\n\t\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n\t};\n}\n\n// Support: jQuery 3.4.x or older\n// These methods have been defined in jQuery 3.5.0.\nif ( !$.fn.even || !$.fn.odd ) {\n\t$.fn.extend( {\n\t\teven: function() {\n\t\t\treturn this.filter( function( i ) {\n\t\t\t\treturn i % 2 === 0;\n\t\t\t} );\n\t\t},\n\t\todd: function() {\n\t\t\treturn this.filter( function( i ) {\n\t\t\t\treturn i % 2 === 1;\n\t\t\t} );\n\t\t}\n\t} );\n}\n\n;\n/*!\n * jQuery UI Keycode 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Keycode\n//>>group: Core\n//>>description: Provide keycodes as keynames\n//>>docs: https://api.jqueryui.com/jQuery.ui.keyCode/\n\n\nvar keycode = $.ui.keyCode = {\n\tBACKSPACE: 8,\n\tCOMMA: 188,\n\tDELETE: 46,\n\tDOWN: 40,\n\tEND: 35,\n\tENTER: 13,\n\tESCAPE: 27,\n\tHOME: 36,\n\tLEFT: 37,\n\tPAGE_DOWN: 34,\n\tPAGE_UP: 33,\n\tPERIOD: 190,\n\tRIGHT: 39,\n\tSPACE: 32,\n\tTAB: 9,\n\tUP: 38\n};\n\n\n/*!\n * jQuery UI Labels 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: labels\n//>>group: Core\n//>>description: Find all the labels associated with a given input\n//>>docs: https://api.jqueryui.com/labels/\n\n\nvar labels = $.fn.labels = function() {\n\tvar ancestor, selector, id, labels, ancestors;\n\n\tif ( !this.length ) {\n\t\treturn this.pushStack( [] );\n\t}\n\n\t// Check control.labels first\n\tif ( this[ 0 ].labels && this[ 0 ].labels.length ) {\n\t\treturn this.pushStack( this[ 0 ].labels );\n\t}\n\n\t// Support: IE <= 11, FF <= 37, Android <= 2.3 only\n\t// Above browsers do not support control.labels. Everything below is to support them\n\t// as well as document fragments. control.labels does not work on document fragments\n\tlabels = this.eq( 0 ).parents( \"label\" );\n\n\t// Look for the label based on the id\n\tid = this.attr( \"id\" );\n\tif ( id ) {\n\n\t\t// We don't search against the document in case the element\n\t\t// is disconnected from the DOM\n\t\tancestor = this.eq( 0 ).parents().last();\n\n\t\t// Get a full set of top level ancestors\n\t\tancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );\n\n\t\t// Create a selector for the label based on the id\n\t\tselector = \"label[for='\" + $.escapeSelector( id ) + \"']\";\n\n\t\tlabels = labels.add( ancestors.find( selector ).addBack( selector ) );\n\n\t}\n\n\t// Return whatever we have found for labels\n\treturn this.pushStack( labels );\n};\n\n\n/*!\n * jQuery UI Scroll Parent 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: scrollParent\n//>>group: Core\n//>>description: Get the closest ancestor element that is scrollable.\n//>>docs: https://api.jqueryui.com/scrollParent/\n\n\nvar scrollParent = $.fn.scrollParent = function( includeHidden ) {\n\tvar position = this.css( \"position\" ),\n\t\texcludeStaticParent = position === \"absolute\",\n\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\tscrollParent = this.parents().filter( function() {\n\t\t\tvar parent = $( this );\n\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) +\n\t\t\t\tparent.css( \"overflow-x\" ) );\n\t\t} ).eq( 0 );\n\n\treturn position === \"fixed\" || !scrollParent.length ?\n\t\t$( this[ 0 ].ownerDocument || document ) :\n\t\tscrollParent;\n};\n\n\n/*!\n * jQuery UI Tabbable 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: :tabbable Selector\n//>>group: Core\n//>>description: Selects elements which can be tabbed to.\n//>>docs: https://api.jqueryui.com/tabbable-selector/\n\n\nvar tabbable = $.extend( $.expr.pseudos, {\n\ttabbable: function( element ) {\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\n\t\t\thasTabindex = tabIndex != null;\n\t\treturn ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );\n\t}\n} );\n\n\n/*!\n * jQuery UI Unique ID 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: uniqueId\n//>>group: Core\n//>>description: Functions to generate and remove uniqueId's\n//>>docs: https://api.jqueryui.com/uniqueId/\n\n\nvar uniqueId = $.fn.extend( {\n\tuniqueId: ( function() {\n\t\tvar uuid = 0;\n\n\t\treturn function() {\n\t\t\treturn this.each( function() {\n\t\t\t\tif ( !this.id ) {\n\t\t\t\t\tthis.id = \"ui-id-\" + ( ++uuid );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tremoveUniqueId: function() {\n\t\treturn this.each( function() {\n\t\t\tif ( /^ui-id-\\d+$/.test( this.id ) ) {\n\t\t\t\t$( this ).removeAttr( \"id\" );\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n\n/*!\n * jQuery UI Accordion 1.13.3\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Accordion\n//>>group: Widgets\n/* eslint-disable max-len */\n//>>description: Displays collapsible content panels for presenting information in a limited amount of space.\n/* eslint-enable max-len */\n//>>docs: https://api.jqueryui.com/accordion/\n//>>demos: https://jqueryui.com/accordion/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/accordion.css\n//>>css.theme: ../../themes/base/theme.css\n\n\nvar widgetsAccordion = $.widget( \"ui.accordion\", {\n\tversion: \"1.13.3\",\n\toptions: {\n\t\tactive: 0,\n\t\tanimate: {},\n\t\tclasses: {\n\t\t\t\"ui-accordion-header\": \"ui-corner-top\",\n\t\t\t\"ui-accordion-header-collapsed\": \"ui-corner-all\",\n\t\t\t\"ui-accordion-content\": \"ui-corner-bottom\"\n\t\t},\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theader: function( elem ) {\n\t\t\treturn elem.find( \"> li > :first-child\" ).add( elem.find( \"> :not(li)\" ).even() );\n\t\t},\n\t\theightStyle: \"auto\",\n\t\ticons: {\n\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\n\t\t\theader: \"ui-icon-triangle-1-e\"\n\t\t},\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null\n\t},\n\n\thideProps: {\n\t\tborderTopWidth: \"hide\",\n\t\tborderBottomWidth: \"hide\",\n\t\tpaddingTop: \"hide\",\n\t\tpaddingBottom: \"hide\",\n\t\theight: \"hide\"\n\t},\n\n\tshowProps: {\n\t\tborderTopWidth: \"show\",\n\t\tborderBottomWidth: \"show\",\n\t\tpaddingTop: \"show\",\n\t\tpaddingBottom: \"show\",\n\t\theight: \"show\"\n\t},\n\n\t_create: function() {\n\t\tvar options = this.options;\n\n\t\tthis.prevShow = this.prevHide = $();\n\t\tthis._addClass( \"ui-accordion\", \"ui-widget ui-helper-reset\" );\n\t\tthis.element.attr( \"role\", \"tablist\" );\n\n\t\t// Don't allow collapsible: false and active: false / null\n\t\tif ( !options.collapsible && ( options.active === false || options.active == null ) ) {\n\t\t\toptions.active = 0;\n\t\t}\n\n\t\tthis._processPanels();\n\n\t\t// handle negative values\n\t\tif ( options.active < 0 ) {\n\t\t\toptions.active += this.headers.length;\n\t\t}\n\t\tthis._refresh();\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\theader: this.active,\n\t\t\tpanel: !this.active.length ? $() : this.active.next()\n\t\t};\n\t},\n\n\t_createIcons: function() {\n\t\tvar icon, children,\n\t\t\ticons = this.options.icons;\n\n\t\tif ( icons ) {\n\t\t\ticon = $( \"\" );\n\t\t\tthis._addClass( icon, \"ui-accordion-header-icon\", \"ui-icon \" + icons.header );\n\t\t\ticon.prependTo( this.headers );\n\t\t\tchildren = this.active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( children, icons.header )\n\t\t\t\t._addClass( children, null, icons.activeHeader )\n\t\t\t\t._addClass( this.headers, \"ui-accordion-icons\" );\n\t\t}\n\t},\n\n\t_destroyIcons: function() {\n\t\tthis._removeClass( this.headers, \"ui-accordion-icons\" );\n\t\tthis.headers.children( \".ui-accordion-header-icon\" ).remove();\n\t},\n\n\t_destroy: function() {\n\t\tvar contents;\n\n\t\t// Clean up main element\n\t\tthis.element.removeAttr( \"role\" );\n\n\t\t// Clean up headers\n\t\tthis.headers\n\t\t\t.removeAttr( \"role aria-expanded aria-selected aria-controls tabIndex\" )\n\t\t\t.removeUniqueId();\n\n\t\tthis._destroyIcons();\n\n\t\t// Clean up content panels\n\t\tcontents = this.headers.next()\n\t\t\t.css( \"display\", \"\" )\n\t\t\t.removeAttr( \"role aria-hidden aria-labelledby\" )\n\t\t\t.removeUniqueId();\n\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tcontents.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tif ( this.options.event ) {\n\t\t\t\tthis._off( this.headers, this.options.event );\n\t\t\t}\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\t// Setting collapsible: false while collapsed; open first panel\n\t\tif ( key === \"collapsible\" && !value && this.options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t}\n\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis._destroyIcons();\n\t\t\tif ( value ) {\n\t\t\t\tthis._createIcons();\n\t\t\t}\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis.element.attr( \"aria-disabled\", value );\n\n\t\t// Support: IE8 Only\n\t\t// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE\n\t\t// so we need to add the disabled class to the headers and panels\n\t\tthis._toggleClass( null, \"ui-state-disabled\", !!value );\n\t\tthis._toggleClass( this.headers.add( this.headers.next() ), null, \"ui-state-disabled\",\n\t\t\t!!value );\n\t},\n\n\t_keydown: function( event ) {\n\t\tif ( event.altKey || event.ctrlKey ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar keyCode = $.ui.keyCode,\n\t\t\tlength = this.headers.length,\n\t\t\tcurrentIndex = this.headers.index( event.target ),\n\t\t\ttoFocus = false;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase keyCode.RIGHT:\n\t\tcase keyCode.DOWN:\n\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.LEFT:\n\t\tcase keyCode.UP:\n\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.SPACE:\n\t\tcase keyCode.ENTER:\n\t\t\tthis._eventHandler( event );\n\t\t\tbreak;\n\t\tcase keyCode.HOME:\n\t\t\ttoFocus = this.headers[ 0 ];\n\t\t\tbreak;\n\t\tcase keyCode.END:\n\t\t\ttoFocus = this.headers[ length - 1 ];\n\t\t\tbreak;\n\t\t}\n\n\t\tif ( toFocus ) {\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\n\t\t\t$( toFocus ).trigger( \"focus\" );\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_panelKeyDown: function( event ) {\n\t\tif ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {\n\t\t\t$( event.currentTarget ).prev().trigger( \"focus\" );\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options;\n\t\tthis._processPanels();\n\n\t\t// Was collapsed or no panel\n\t\tif ( ( options.active === false && options.collapsible === true ) ||\n\t\t\t\t!this.headers.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\n\t\t// active false only when collapsible is true\n\t\t} else if ( options.active === false ) {\n\t\t\tthis._activate( 0 );\n\n\t\t// was active, but active panel is gone\n\t\t} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\n\t\t\t// all remaining panel are disabled\n\t\t\tif ( this.headers.length === this.headers.find( \".ui-state-disabled\" ).length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\n\t\t\t// activate previous panel\n\t\t\t} else {\n\t\t\t\tthis._activate( Math.max( 0, options.active - 1 ) );\n\t\t\t}\n\n\t\t// was active, active panel still exists\n\t\t} else {\n\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.headers.index( this.active );\n\t\t}\n\n\t\tthis._destroyIcons();\n\n\t\tthis._refresh();\n\t},\n\n\t_processPanels: function() {\n\t\tvar prevHeaders = this.headers,\n\t\t\tprevPanels = this.panels;\n\n\t\tif ( typeof this.options.header === \"function\" ) {\n\t\t\tthis.headers = this.options.header( this.element );\n\t\t} else {\n\t\t\tthis.headers = this.element.find( this.options.header );\n\t\t}\n\t\tthis._addClass( this.headers, \"ui-accordion-header ui-accordion-header-collapsed\",\n\t\t\t\"ui-state-default\" );\n\n\t\tthis.panels = this.headers.next().filter( \":not(.ui-accordion-content-active)\" ).hide();\n\t\tthis._addClass( this.panels, \"ui-accordion-content\", \"ui-helper-reset ui-widget-content\" );\n\n\t\t// Avoid memory leaks (#10056)\n\t\tif ( prevPanels ) {\n\t\t\tthis._off( prevHeaders.not( this.headers ) );\n\t\t\tthis._off( prevPanels.not( this.panels ) );\n\t\t}\n\t},\n\n\t_refresh: function() {\n\t\tvar maxHeight,\n\t\t\toptions = this.options,\n\t\t\theightStyle = options.heightStyle,\n\t\t\tparent = this.element.parent();\n\n\t\tthis.active = this._findActive( options.active );\n\t\tthis._addClass( this.active, \"ui-accordion-header-active\", \"ui-state-active\" )\n\t\t\t._removeClass( this.active, \"ui-accordion-header-collapsed\" );\n\t\tthis._addClass( this.active.next(), \"ui-accordion-content-active\" );\n\t\tthis.active.next().show();\n\n\t\tthis.headers\n\t\t\t.attr( \"role\", \"tab\" )\n\t\t\t.each( function() {\n\t\t\t\tvar header = $( this ),\n\t\t\t\t\theaderId = header.uniqueId().attr( \"id\" ),\n\t\t\t\t\tpanel = header.next(),\n\t\t\t\t\tpanelId = panel.uniqueId().attr( \"id\" );\n\t\t\t\theader.attr( \"aria-controls\", panelId );\n\t\t\t\tpanel.attr( \"aria-labelledby\", headerId );\n\t\t\t} )\n\t\t\t.next()\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\n\n\t\tthis.headers\n\t\t\t.not( this.active )\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\t\ttabIndex: -1\n\t\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t\t\t} )\n\t\t\t\t\t.hide();\n\n\t\t// Make sure at least one header is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.headers.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active.attr( {\n\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\ttabIndex: 0\n\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t\t} );\n\t\t}\n\n\t\tthis._createIcons();\n\n\t\tthis._setupEvents( options.event );\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tthis.element.siblings( \":visible\" ).each( function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.each( function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t\t} )\n\t\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar isVisible = $( this ).is( \":visible\" );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).show();\n\t\t\t\t\t}\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).css( \"height\", \"\" ).height() );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).hide();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.height( maxHeight );\n\t\t}\n\t},\n\n\t_activate: function( index ) {\n\t\tvar active = this._findActive( index )[ 0 ];\n\n\t\t// Trying to activate the already active panel\n\t\tif ( active === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Trying to collapse, simulate a click on the currently active header\n\t\tactive = active || this.active[ 0 ];\n\n\t\tthis._eventHandler( {\n\t\t\ttarget: active,\n\t\t\tcurrentTarget: active,\n\t\t\tpreventDefault: $.noop\n\t\t} );\n\t},\n\n\t_findActive: function( selector ) {\n\t\treturn typeof selector === \"number\" ? this.headers.eq( selector ) : $();\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {\n\t\t\tkeydown: \"_keydown\"\n\t\t};\n\t\tif ( event ) {\n\t\t\t$.each( event.split( \" \" ), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t} );\n\t\t}\n\n\t\tthis._off( this.headers.add( this.headers.next() ) );\n\t\tthis._on( this.headers, events );\n\t\tthis._on( this.headers.next(), { keydown: \"_panelKeyDown\" } );\n\t\tthis._hoverable( this.headers );\n\t\tthis._focusable( this.headers );\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar activeChildren, clickedChildren,\n\t\t\toptions = this.options,\n\t\t\tactive = this.active,\n\t\t\tclicked = $( event.currentTarget ),\n\t\t\tclickedIsActive = clicked[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : clicked.next(),\n\t\t\ttoHide = active.next(),\n\t\t\teventData = {\n\t\t\t\toldHeader: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewHeader: collapsing ? $() : clicked,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.headers.index( clicked );\n\n\t\t// When the call to ._toggle() comes after the class changes\n\t\t// it causes a very odd bug in IE 8 (see #6720)\n\t\tthis.active = clickedIsActive ? $() : clicked;\n\t\tthis._toggle( eventData );\n\n\t\t// Switch classes\n\t\t// corner classes on the previously active header stay after the animation\n\t\tthis._removeClass( active, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\tif ( options.icons ) {\n\t\t\tactiveChildren = active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( activeChildren, null, options.icons.activeHeader )\n\t\t\t\t._addClass( activeChildren, null, options.icons.header );\n\t\t}\n\n\t\tif ( !clickedIsActive ) {\n\t\t\tthis._removeClass( clicked, \"ui-accordion-header-collapsed\" )\n\t\t\t\t._addClass( clicked, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\t\tif ( options.icons ) {\n\t\t\t\tclickedChildren = clicked.children( \".ui-accordion-header-icon\" );\n\t\t\t\tthis._removeClass( clickedChildren, null, options.icons.header )\n\t\t\t\t\t._addClass( clickedChildren, null, options.icons.activeHeader );\n\t\t\t}\n\n\t\t\tthis._addClass( clicked.next(), \"ui-accordion-content-active\" );\n\t\t}\n\t},\n\n\t_toggle: function( data ) {\n\t\tvar toShow = data.newPanel,\n\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\n\n\t\t// Handle activating a panel during the animation for another activation\n\t\tthis.prevShow.add( this.prevHide ).stop( true, true );\n\t\tthis.prevShow = toShow;\n\t\tthis.prevHide = toHide;\n\n\t\tif ( this.options.animate ) {\n\t\t\tthis._animate( toShow, toHide, data );\n\t\t} else {\n\t\t\ttoHide.hide();\n\t\t\ttoShow.show();\n\t\t\tthis._toggleComplete( data );\n\t\t}\n\n\t\ttoHide.attr( {\n\t\t\t\"aria-hidden\": \"true\"\n\t\t} );\n\t\ttoHide.prev().attr( {\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\"\n\t\t} );\n\n\t\t// if we're switching panels, remove the old header from the tab order\n\t\t// if we're opening from collapsed state, remove the previous header from the tab order\n\t\t// if we're collapsing, then keep the collapsing header in the tab order\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\ttoHide.prev().attr( {\n\t\t\t\t\"tabIndex\": -1,\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t} );\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.headers.filter( function() {\n\t\t\t\treturn parseInt( $( this ).attr( \"tabIndex\" ), 10 ) === 0;\n\t\t\t} )\n\t\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow\n\t\t\t.attr( \"aria-hidden\", \"false\" )\n\t\t\t.prev()\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t} );\n\t},\n\n\t_animate: function( toShow, toHide, data ) {\n\t\tvar total, easing, duration,\n\t\t\tthat = this,\n\t\t\tadjust = 0,\n\t\t\tboxSizing = toShow.css( \"box-sizing\" ),\n\t\t\tdown = toShow.length &&\n\t\t\t\t( !toHide.length || ( toShow.index() < toHide.index() ) ),\n\t\t\tanimate = this.options.animate || {},\n\t\t\toptions = down && animate.down || animate,\n\t\t\tcomplete = function() {\n\t\t\t\tthat._toggleComplete( data );\n\t\t\t};\n\n\t\tif ( typeof options === \"number\" ) {\n\t\t\tduration = options;\n\t\t}\n\t\tif ( typeof options === \"string\" ) {\n\t\t\teasing = options;\n\t\t}\n\n\t\t// fall back from options to animation in case of partial down settings\n\t\teasing = easing || options.easing || animate.easing;\n\t\tduration = duration || options.duration || animate.duration;\n\n\t\tif ( !toHide.length ) {\n\t\t\treturn toShow.animate( this.showProps, duration, easing, complete );\n\t\t}\n\t\tif ( !toShow.length ) {\n\t\t\treturn toHide.animate( this.hideProps, duration, easing, complete );\n\t\t}\n\n\t\ttotal = toShow.show().outerHeight();\n\t\ttoHide.animate( this.hideProps, {\n\t\t\tduration: duration,\n\t\t\teasing: easing,\n\t\t\tstep: function( now, fx ) {\n\t\t\t\tfx.now = Math.round( now );\n\t\t\t}\n\t\t} );\n\t\ttoShow\n\t\t\t.hide()\n\t\t\t.animate( this.showProps, {\n\t\t\t\tduration: duration,\n\t\t\t\teasing: easing,\n\t\t\t\tcomplete: complete,\n\t\t\t\tstep: function( now, fx ) {\n\t\t\t\t\tfx.now = Math.round( now );\n\t\t\t\t\tif ( fx.prop !== \"height\" ) {\n\t\t\t\t\t\tif ( boxSizing === \"content-box\" ) {\n\t\t\t\t\t\t\tadjust += fx.now;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( that.options.heightStyle !== \"content\" ) {\n\t\t\t\t\t\tfx.now = Math.round( total - toHide.outerHeight() - adjust );\n\t\t\t\t\t\tadjust = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t},\n\n\t_toggleComplete: function( data ) {\n\t\tvar toHide = data.oldPanel,\n\t\t\tprev = toHide.prev();\n\n\t\tthis._removeClass( toHide, \"ui-accordion-content-active\" );\n\t\tthis._removeClass( prev, \"ui-accordion-header-active\" )\n\t\t\t._addClass( prev, \"ui-accordion-header-collapsed\" );\n\n\t\t// Work around for rendering bug in IE (#5421)\n\t\tif ( toHide.length ) {\n\t\t\ttoHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;\n\t\t}\n\t\tthis._trigger( \"activate\", null, data );\n\t}\n} );\n\n\n\nvar safeActiveElement = $.ui.safeActiveElement = function( document ) {\n\tvar activeElement;\n\n\t// Support: IE 9 only\n\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an